我只是在探索VBA並嘗試使用它將數據從一個工作簿複製到另一個工作簿。 第一本書'send'的信息介於A:D和行數可以改變。 「接收者」將從許多「發送」中收集信息,因此需要將這些數據複製到最後信息的下方。 我發現下面這段代碼並修改它,但它給我一個運行時的9碼,並在 「lMaxRows_t」任何想法跌倒或幫助非常感謝VBA將數據從一個工作簿複製到另一個工作簿
Sub CopyData()
Dim sBook_t As String
Dim sBook_s As String
Dim sSheet_t As String
Dim sSheet_s As String
Dim lMaxRows_t As Long
Dim lMaxRows_s As Long
Dim sMaxCol_s As String
Dim sRange_t As String
Dim sRange_s As String
sBook_t = "\\scceastfl5\~\tester receiver.xlsx"
sBook_s = "\\scceastfl5\~\tester send.xlsx"
sSheet_t = "Sheet1"
sSheet_s = "Sheet1"
lMaxRows_t = Workbooks(sBook_t).Sheets(sSheet_t).Cells(Rows.Count, "A").End(xlUp).Row
lMaxRows_s = Workbooks(sBook_s).Sheets(sSheet_s).Cells(Rows.Count, "A").End(xlUp).Row
sMaxCol_s = Workbooks(sBook_s).Sheets(sSheet_s).Cells(1, Columns.Count).End(xlToLeft).Address
sMaxCol_s = Mid(sMaxCol_s, 2, InStr(2, sMaxCol_s, "$") - 2)
If (lMaxRows_t = 1) Then
sRange_t = "A1:" & sMaxCol_s & lMaxRows_s
sRange_s = "A1:" & sMaxCol_s & lMaxRows_s
Workbooks(sBook_t).Sheets(sSheet_t).Range(sRange_t) = Workbooks(sBook_s).Sheets(sSheet_s).Range(sRange_s).Value
Else
sRange_t = "A" & (lMaxRows_t + 1) & ":" & sMaxCol_s & (lMaxRows_t + lMaxRows_s - 1)
sRange_s = "A2:" & sMaxCol_s & lMaxRows_s
Workbooks(sBook_t).Sheets(sSheet_t).Range(sRange_t) = Workbooks(sBook_s).Sheets(sSheet_s).Range(sRange_s).Value
End If
End Sub
有什麼錯誤訊息?您是否嘗試在調試模式下逐句通過您的代碼? – 2012-02-17 14:39:11
它的運行時間錯誤9,正如我所提到的,它在第一行幾乎落在'lMaxRows_t' – user1216413 2012-02-17 18:29:58
這回答我的任何上述問題。 – 2012-02-18 08:25:50