0
私は、コードが閉じられたブックからデータを読み取り、そのブックのsheet2に貼り付けることができるポイントに到達します。この私の新しいコードです:それは発行エラーが動作を停止クローズドブックからのコピーExcel VBA
Destination:=Workbooks("general.xlsx").Worksheets("Sheet2").Columns((i + 1) + i).Cells(2, 1)
:
Sub Copy456()
Dim iCol As Long
Dim iSht As Long
Dim i As Long
'Fpath = "C:\testy" ' change to your directory
'Fname = Dir(Fpath & "*.xlsx")
Workbooks.Open ("run1.xlsx")
For i = 1 To Worksheets.Count
Worksheets(i).Activate
' Loop through columns
For iSht = 1 To 6 ' no of sheets
For iCol = 1 To 6 ' no of columns
With Worksheets(i).Columns(iCol)
If ((.Cells(1, 1).Value = "Time")) Then ' if first cell=Time then copy two columns
Range(.Cells(1, 2), .End(xlDown)).Select
Selection.Copy Destination:=Workbooks("Your Idea.xlsm").Worksheets("Sheet2").Columns((i + 1) + i).Cells(2, 1)
Worksheets("Sheet2").Cells(i * 2 + 1) = Worksheets(i).Name
Else
' do nothing
End If
End With
Next iCol
Next iSht
Next i
End Sub
しかし、私は、コードの一部を変更すると:そのコードに
Selection.Copy Destination:=Worksheets("Sheet2").Columns((i + 1) + i).Cells(2, 1)
「サブスクリプションが出ています範囲の "。 ファイルgeneral.xlsxも閉じている空のファイルです。これは、エラーを発行し
`Selection.Copy Destination:=Workbooks("Your Idea.xlsm").Worksheets("Sheet2").Columns((i + 1) + i).Cells(2, 1)
:
は私がにコードを変更すると、「1004年は、マージされたセルの一部を変更することはできません」。 ファイル "Your Idea.xlsm"は、このスクリプトを実行しているファイルです。
この問題のサポートはありますか?
ループの最初にワークシートを活性化しようとするかもしれないためActiveWorksheet.Columnsまたはちょうどws.Columnsと同じを使用して、それらを操作するためにファイルを開く必要がありますあなたがRangesなどの使用に関してもっと明示する必要があると思われるので、これらはエラーを投げていませんが、VBAは各ワークシートではなく最初のワークシートを使用します。 –
「VBAは各ワークシートではなく最初のワークシートを使用します」はVBAアクティブシートを使用しています... –
私の質問に答えることができないので、私は新しいコードとneで前の質問を編集しましたwの問題。あなたはもう一度それを見ることができますか? – novak100