我已經編寫了下面的代碼,但我似乎無法檢測到它有什麼問題。該程序被設置爲從數據傳輸工作簿:VBA代碼有時會返回錯誤,有時候不會
SRJem.xlsx
到下面的代碼被寫入活動工作簿。現在,我同時打開兩個工作簿(並且我不想在執行操作時關閉它們)。問題是,代碼在某些時候是成功的,而它在某些時候會返回第15行中的錯誤。我在手術前試過挽救,但仍然發生。
線15:
ws.Cells(iRow,4)。價值= wbSource.Sheets( 「1」)的細胞(14,1)。價值
我需要一些關於我有錯誤的光解釋。非常感謝。
Sub transfer_to_masterfile()
'find first empty row in database
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("1")
Dim wbSource As Workbook
iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues).row + 1
Set wbSource = Workbooks.Open("C:\Users\fed.staff01\Desktop\J.G.E - QS\6. EXCEL PROGRAMS\SRJem.xlsx") ' <<< path to source workbook
'Now, transfer values from wbSource to wbTarget:
ws.Cells(iRow, 4).Value = wbSource.Sheets("1").Cells(14, 1).Value
ws.Cells(iRow, 5).Value = wbSource.Sheets("1").Cells(6, 4).Value
Dim mats As String
Dim row As Integer
row = 23
Do
mats = mats & " " & wbSource.Sheets("1").Cells(row, 1).Value & " " & wbSource.Sheets("1").Cells(row, 3).Value & _
" " & wbSource.Sheets("1").Cells(row, 5).Value
If wbSource.Sheets("1").Cells(row + 1, 1).Value > 0 Then
mats = mats & vbNewLine
End If
If wbSource.Sheets("1").Cells(row + 1, 1).Value = "" Then
Exit Do
End If
row = row + 1
Loop Until row = 42
ws.Cells(iRow, 7).Value = mats
'ws.Cells(iRow, 5).Value = wbSource.Sheets("1").Cells(6, 4).Value
'wbSource.Close
'wbTarget.Close
End Sub
您的工作表被命名爲「」1「'?或者你正在試圖提到第一個'1'? – PatricK
@PatricK,我指的是我的工作表名稱是「1」。 –
要將問題標記爲已回答,只需點擊對您有幫助的答案左側的「打勾」即可。 [幫助文件。](https://stackoverflow.com/help/accepted-answer) –