teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

7

こちらかがいいかも

2020/07/31 09:34

投稿

mako1972
mako1972

スコア383

answer CHANGED
@@ -61,6 +61,9 @@
61
61
  https://www.datadeliver.net/receiver/file_box.do?fb=9a132233876d4b4db2693b816cca2ac0&rc=001cb174404346c687b9197920f7c4f7&lang=ja
62
62
 
63
63
 
64
+ また、このように、表を縦持ちとして、処理するのが、質問者さんの
65
+ FINDでやりたい形式かもしれませんね!
66
+
64
67
  |西暦|月|使用時間|
65
68
  |:--|:--:|--:|
66
69
  |2020|1月|XX|
@@ -70,6 +73,4 @@
70
73
  |2020|5月|XX|
71
74
  |2020|6月|XX|
72
75
  |2020|7月|XX|
73
- |2020|8月|55.83|
76
+ |2020|8月|55.83|
74
-
75
- また、このように、表を縦持ちとして、今回のFINDで工夫してみるとよろしいかと思います。

6

こちらかがいいかも

2020/07/31 09:34

投稿

mako1972
mako1972

スコア383

answer CHANGED
@@ -58,4 +58,18 @@
58
58
  データ便にUPしておきます。ダウンロード期間は2日間です。
59
59
  必要であればダウンロードしてください。
60
60
 
61
- https://www.datadeliver.net/receiver/file_box.do?fb=9a132233876d4b4db2693b816cca2ac0&rc=001cb174404346c687b9197920f7c4f7&lang=ja
61
+ https://www.datadeliver.net/receiver/file_box.do?fb=9a132233876d4b4db2693b816cca2ac0&rc=001cb174404346c687b9197920f7c4f7&lang=ja
62
+
63
+
64
+ |西暦|月|使用時間|
65
+ |:--|:--:|--:|
66
+ |2020|1月|XX|
67
+ |2020|2月|XX|
68
+ |2020|3月|XX|
69
+ |2020|4月|XX|
70
+ |2020|5月|XX|
71
+ |2020|6月|XX|
72
+ |2020|7月|XX|
73
+ |2020|8月|55.83|
74
+
75
+ また、このように、表を縦持ちとして、今回のFINDで工夫してみるとよろしいかと思います。

5

こちらかがいいかも

2020/07/31 09:32

投稿

mako1972
mako1972

スコア383

answer CHANGED
@@ -54,4 +54,8 @@
54
54
  Set ws2 = Nothing
55
55
 
56
56
  End Sub
57
- ```
57
+ ```
58
+ データ便にUPしておきます。ダウンロード期間は2日間です。
59
+ 必要であればダウンロードしてください。
60
+
61
+ https://www.datadeliver.net/receiver/file_box.do?fb=9a132233876d4b4db2693b816cca2ac0&rc=001cb174404346c687b9197920f7c4f7&lang=ja

4

こちらかがいいかも

2020/07/31 09:19

投稿

mako1972
mako1972

スコア383

answer CHANGED
@@ -9,8 +9,11 @@
9
9
 
10
10
  の部分は、A列の下にむかって処理するとしています。
11
11
 
12
- FIND指定がめちゃちゃなので少し情報を整理したほうがよいと思います。
12
+ worksheet”年度別排出量”データは縦展開ではな、横展開なので
13
+ A列の最大行を取得したい理由がわかりません・・。
13
14
 
15
+ 結果、FINDの指定もめちゃくちゃくなりますので、少し情報を整理したほうがよいと思います。
16
+
14
17
  データ数が少ないので、まずは、下記のようにFINDを使わない方法で
15
18
  データの指定方法について理解をしたほうがFINDで処理できると思います。
16
19
 

3

こちらかがいいかも

2020/07/31 09:14

投稿

mako1972
mako1972

スコア383

answer CHANGED
@@ -2,15 +2,20 @@
2
2
 
3
3
  Lastrow = ws1.Range("a1").End(xlToRight).Column 'A列の最終列を取得
4
4
 
5
+ この部分は、A列の最終行ではなく、A1を起点として右に検索しているので
5
- この部分は、Lastrowは6列目(F)が最大ということを示しています。
6
+ Lastrowは6列目(F)が最大ということを示しています。
6
7
 
7
8
  また、Set myrange = ws1.Range("A1:a" & Lastrow) 'A1:Aセルの最終列を取得
8
9
 
9
- の部分は、にむかっての検索が必要なのでA列の最大行をみたいう意味もおかしいと思います。
10
+ の部分は、A列の下にむかって処理するとしいます。
10
11
 
12
+ FINDの指定がめちゃくちゃなので少し情報を整理したほうがよいと思います。
11
13
 
14
+ データ数が少ないので、まずは、下記のようにFINDを使わない方法で
12
- FINDではないのですが、このようなコドを想しているのだと思います。
15
+ タの指方法につて理解をしたほうがFINDで処理できると思います。
13
16
 
17
+ 参考程度で結構です。。
18
+
14
19
  ```VBA
15
20
  Sub test()
16
21
 

2

こちらかがいいかも

2020/07/31 09:12

投稿

mako1972
mako1972

スコア383

answer CHANGED
@@ -1,14 +1,14 @@
1
- __イタリックテキスト__VBAコードで、下記のようにされていますが
1
+ 下記のようにされていますが
2
2
 
3
3
  Lastrow = ws1.Range("a1").End(xlToRight).Column 'A列の最終列を取得
4
4
 
5
- Lastrowは6列目(F)が最大ということを示しています。
5
+ この部分は、Lastrowは6列目(F)が最大ということを示しています。
6
6
 
7
- そこで次に下記のコードですが、Aの最大行に指定しています。
7
+ またSet myrange = ws1.Range("A1:a" & Lastrow) 'A1:Aセルの最終列を取得
8
- まず、ここが意味がわかりません・・。
9
8
 
10
- Set myrange = ws1.Range("A1:a" & Lastrow) 'A1:Aセルの最終列取得
9
+ の部分は、右にむかっての検索が必要なのでAの最大行みたいとう意味もおかしいと思います。
11
10
 
11
+
12
12
  FINDではないのですが、このようなコードを想定しているのだと思います。
13
13
 
14
14
  ```VBA

1

こちらかがいいかも

2020/07/31 09:08

投稿

mako1972
mako1972

スコア383

answer CHANGED
@@ -1,4 +1,4 @@
1
- VBAコードで、下記のようにされていますが
1
+ __イタリックテキスト__VBAコードで、下記のようにされていますが
2
2
 
3
3
  Lastrow = ws1.Range("a1").End(xlToRight).Column 'A列の最終列を取得
4
4
 
@@ -7,4 +7,43 @@
7
7
  そこで、次に下記のコードですが、A列の最大行に指定しています。
8
8
  まず、ここが意味がわかりません・・。
9
9
 
10
- Set myrange = ws1.Range("A1:a" & Lastrow) 'A1:Aセルの最終列を取得
10
+ Set myrange = ws1.Range("A1:a" & Lastrow) 'A1:Aセルの最終列を取得
11
+
12
+ FINDではないのですが、このようなコードを想定しているのだと思います。
13
+
14
+ ```VBA
15
+ Sub test()
16
+
17
+ Dim ws1 As Worksheet
18
+ Dim ws2 As Worksheet
19
+ Dim Lastcoumns As String
20
+ Dim i As Double
21
+ Dim key As String
22
+ Dim mymonth As String
23
+ Dim mystr As String
24
+
25
+ Set ws1 = Worksheets("年度別排出量")
26
+ Set ws2 = Worksheets("登録")
27
+
28
+ Lastcoumns = ws1.Range("a1").End(xlToRight).Column
29
+
30
+ key = ws2.Range("A1").Value
31
+ mystr = ws2.Range("H1").Value
32
+
33
+ For i = 1 To Lastcoumns
34
+
35
+ mymonth = ws1.Cells(1, i).Value
36
+
37
+ If mymonth = key Then
38
+
39
+ ws1.Cells(2, i).Value = mystr
40
+
41
+
42
+ End If
43
+ Next
44
+
45
+ Set ws1 = Nothing
46
+ Set ws2 = Nothing
47
+
48
+ End Sub
49
+ ```