|
こんにちは。かみちゃん です。
> Sheet1のE列から3列飛ばしでBW列まである数字をコピーして、Sheet2に貼り付け
> る処理を行うことを3から100行までFor文で実行したいのですが、
> 数字を取得するところでエラーしていまいます。
どの行で、どのようなエラーになるのでしょうか?
あと、直接は関係ありませんが、
・変数の宣言
・インデントの整理
は、きちんとされたほうがいいと思います。
上記を整理して、再現できる簡単なコードとして、以下のようなコードを実行する
とエラーは出ませんでした。
☆の行は、暫定として修正追加している行です。
★は追加した行です。
なお、
If Cells(i, 1) <> "" Then '◆
の行は、変数i が 1 のときは、マクロ開始時のアクティブシートですが、
変数i が 2以上のときは、Sheet3 のセルがアクティブになっていますが大丈夫
でしょうか?
Sub データ取得貼付2()
Dim i As Integer '★
For i = 3 To 100
MsgBox Cells(1, 1).Address(, , , True) '☆
Cells(1, 1) = i
If Cells(i, 1) <> "" Then '◆
Worksheets("Sheet1").Activate
Range("E3,I3").Select '☆
' Range("E3,I3,M3(省略)・・・・・,BW3").Select
' Range("Ei,Ii,Mi(省略)・・・・・,BWi").Select
Selection.Copy
Sheets("Sheet3").Select
Range("G3").Select
' ↓xlPasteAll, の後に △_ が 抜けている?(△は半角スペース)
Selection.PasteSpecial Paste:=xlPasteAll, _
Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
End If
Next
End Sub
|
|