私はすでにこの問題に何時間も費やしましたが、有効な解決策を見つけることができませんでした。
ここに私の問題の説明があります:
あるワークブックの特定の範囲のセルをループして、値を別のワークブックにコピーしたいと考えています。最初のブックの現在の列に応じて、2 番目のブックの別のシートに値をコピーします。コードを実行すると、常にruntime error 439: object does not support this method or property
.
私のコードは多かれ少なかれ次のようになります。
Sub trial()
Dim Group As Range
Dim Mat As Range
Dim CurCell_1 As Range
Dim CurCell_2 As Range
Application.ScreenUpdating = False
Set CurCell_1 = Range("B3") 'starting point in wb 1
For Each Group in Workbooks("My_WB_1").Worksheets("My_Sheet").Range("B4:P4")
Set CurCell_2 = Range("B4") 'starting point in wb 2
For Each Mat in Workbooks("My_WB_1").Worksheets("My_Sheet").Range("A5:A29")
Set CurCell_1 = Cells(Mat.Row, Group.Column) 'Set current cell in the loop
If Not IsEmpty(CurCell_1)
Workbooks("My_WB_2").Worksheets(CStr(Group.Value)).CurCell_2.Value = Workbooks("My_WB_1").Worksheets("My_Sheet").CurCell_1.Value 'Here it break with runtime error '438 object does not support this method or property
CurCell_2 = CurCell_2.Offset(1,0) 'Move one cell down
End If
Next
Next
Application.ScreenUpdating = True
End Sub
私は広範な調査を行い、オブジェクト(シートと範囲)に明示的な名前を使用している場合に、あるワークブックから別のワークブックに値をコピーする方法を知っていますが、実装したように機能しない理由はわかりません変数。また、stackoverlow と - 明らかに - Google でも検索しましたが、私の質問に答えるような同様の問題は見つかりませんでした。
私の質問は次のとおりです。私のコードのどこにエラーがあるのか、または別の方法で同じことを達成するための別の簡単な方法があるかどうか教えていただけますか?
これはここでの最初の質問です。コードの形式、質問、提供された情報に問題がないことを願っています。そうでなければ私に知らせてください。