別のExcelファイルが2つあります。 Sheet1のこれらの1つには、注文と注文番号に関する情報が格納されています。今私が新しい注文をするたびに、私はこの情報を注文から収集し、いわゆる "データベース"ワークブックに挿入します。列A:Aの最後の空行をC:\Users\user\Desktop\Order_number.xlsx
に指定し、("C6,C17,C10,H18,B32,G32,H6,H9")
の新しい値を次の空行に挿入する必要があります。私が思いついたコードはここにありますが、間違いがあり、うまくいきません。どのように修正することができますか?セルの値を次の空の行にコピーして別のブックvba
Sub TransferValues465()
Dim wsMain As Worksheet: Set wsMain = ThisWorkbook.ActiveSheet
Dim wsData As Worksheet: Set wsData = Workbooks.Open("C:\Users\user\Desktop\Order_number.xlsx").Sheets("Sheet1")
Dim rngToCopy As Range: Set rngToCopy = wsMain.Range("C6,C17,C10,H18,B32,G32,H6,H9")
Dim c As Long
Dim ar As Range
Dim cl As Range
Dim LastRow As Long
Dim rngDestination As Range
With Application
.DisplayAlerts = False
.ScreenUpdating = False
.EnableEvents = False
End With
'Get the last row in Database sheet:
LastRow = wsData.Cells(wsData.Rows.Count, "A").End(xlUp).Row
Set rngDestination = wsData.Cells(LastRow + 1, 1).Resize(1, 25).Offset(0, 0)
For Each ar In rngToCopy.Areas
For Each cl In ar
c = c + 1
'I used this next line for testing:
' rngDestination.Cells(c).Value = cl.Address
rngDestination.Cells(c).Value = cl.Value
Next
Next
End Sub
あなたはwsMain'が二度ではなく、 'wsData'宣言'宣言しました。 – Jordan