回答編集履歴
2
ミス
answer
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
For B = 1 to 100
|
8
8
|
If Workbooks(AAA).Worksheets("シート1").Cells(B, 2).Value = "○" Then
|
9
9
|
Workbooks(AAA).Worksheets("シート1").Range(Cells(B, 6), Cells(B, 12)).Copy
|
10
|
-
Workbooks(BBB).Worksheets("シート1").("AO12:AU12").PasteSpecial Paste:=xlPasteValues
|
10
|
+
Workbooks(BBB).Worksheets("シート1").Range("AO12:AU12").PasteSpecial Paste:=xlPasteValues
|
11
11
|
End If
|
12
12
|
Next B
|
13
13
|
```
|
1
改善
answer
CHANGED
@@ -1,4 +1,14 @@
|
|
1
1
|
印象としてはむしろ改悪されているように思います。
|
2
2
|
必要ない配列を宣言し(しかもバリアント型)、ループを無駄に多くとっています。
|
3
3
|
根本的な問題として、質問者様は**「アクティブ状態のシートでなければコピー・貼り付けができない」と思い込んでいませんか?**
|
4
|
-
[セルの操作(セルのコピー)](http://officetanaka.net/excel/vba/cell/cell09.htm)
|
4
|
+
[セルの操作(セルのコピー)](http://officetanaka.net/excel/vba/cell/cell09.htm)
|
5
|
+
|
6
|
+
```
|
7
|
+
For B = 1 to 100
|
8
|
+
If Workbooks(AAA).Worksheets("シート1").Cells(B, 2).Value = "○" Then
|
9
|
+
Workbooks(AAA).Worksheets("シート1").Range(Cells(B, 6), Cells(B, 12)).Copy
|
10
|
+
Workbooks(BBB).Worksheets("シート1").("AO12:AU12").PasteSpecial Paste:=xlPasteValues
|
11
|
+
End If
|
12
|
+
Next B
|
13
|
+
```
|
14
|
+
一応改善しようとするとこうなりますが、これだとコピー先に上書きされ続けて最後に貼り付けたものしか残らないのでは…?
|