2016-08-17 92 views
0

下面的腳本當前循環訪問數據列表,並根據單元格中的值將範圍從一個工作簿複製到另一個工作簿。將數據從一個工作簿傳輸到另一個工作簿

For i = 3 To LastRow 

If Cells(i, 1) <> "" And Cells(i, 13) = "ü" Then 
Range(Cells(i, 1), Cells(i, 12)).Select 
Selection.Copy 

workbooks.Open Filename:=iForm 
Worksheets("Statistics").Select 
erow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row 

Worksheets("Statistics").Cells(erow, 1).PasteSpecial Paste:=xlPasteValues 
ActiveWorkbook.Save 
ActiveWorkbook.Close 
Application.CutCopyMode = False 
End If 
Next i 

而是複製從A範圍:L我想複製列A & L,我試圖更新此然而我不斷收到錯誤,請幫忙。 我提前感謝你。

+0

當使用多個工作簿/工作表時,你應該使用變量來存儲這些。 [不要使用'.Select' /'.Activate'](https://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros)。你可能從中得到錯誤。例如,'erow'應該等於'ActiveSheet.Cells(ActiveSheet.Rows.Count,1).End(xlUp).Offset(1,0).Row',但是你應該將'Activesheet'打算與之合作。另外,你在哪一行發現了什麼錯誤? – BruceWayne

+0

@BruceWayne。在嘗試複製A&L時,我調整了以下一行,返回錯誤13(類型不匹配)'Range(Cells(i,1)and Cells(i,12))。選擇' – Paul

+0

奇怪 - 它不應該。那之前的代碼是什麼?我會假設它是你使用工作表的。如果數據在「統計」表單上,請嘗試:工作表(「統計」)。範圍(工作表(「統計」)。單元格(i,1),工作表單元(「統計」)單元格))。選擇' – BruceWayne

回答

0

我想我明白你在想什麼。我建議給您的工作表一個變量,然後你可以通過選擇Range()整個列:

Sub t() 
Dim mainWS As Worksheet 
Set mainWS = ActiveWorkbook.Worksheets("Sheet1") ' Tweak as necessary, this sheet is where your main data is (the non-blank cell, and "ü") 

lastRow = mainWS.Cells(mainWS.Rows.Count,1).End(xlUp).Row 'or whatever your formula is. Make sure to reference the worksheet 

For i = 3 To lastRow 
    If mainWS.Cells(i, 1) <> "" And mainWS.Cells(i, 13) = "ü" Then 
     mainWS.Range("A:A,L:L").Select 
     Selection.Copy 

     Workbooks.Open Filename:=iForm 
     'Worksheets("Statistics").Select 
     Set statWS = ActiveWorkbook.Worksheets("Statistics") 

     erow = statWS.Cells(statWS.Rows.Count, 1).End(xlUp).Offset(1, 0).Row 

     statWS.Cells(erow, 1).PasteSpecial Paste:=xlPasteValues 
     ActiveWorkbook.Save 
     ActiveWorkbook.Close 
     Application.CutCopyMode = False 
    End If 
Next i 

End Sub 

和註釋,我留在.Select,只是爲了保持它類似於您的OP。雖然你一定要看看avoid using .Select

+1

這很好,謝謝布魯斯。誠然,它還沒有工作,但我可以調整它與我的工作表一起工作。謝謝 :) – Paul

相關問題