我是相當新的VBA讓我道歉的時間提前。我一直在參與一些複雜的操作,我會很感激一些幫助或輸入。複製範圍從文件夾和粘貼中的所有文件到主簿
有了這個宏,我試圖:從處於一個給定的文件夾中的所有文件內的特定片
- 複製一個特定的範圍(2點寬)。
- 粘貼範圍內的值(如果可能的話格式化)在一列上已經打開的主工作簿起始於B7和爲每一個新的文檔上移動兩列,以使粘貼的數據不重疊。
- 複製/粘貼完整
由於後關閉文件,現在我收到
運行時錯誤9:下標越界
爲
Workbooks("RF_Summary_Template").Worksheets("Summary").Select
但我知道這是我的問題中最少的。
下面是我的代碼:
Sub compile()
Dim SummaryFile As String, SummarySheet As String, summaryColumn As Long
Dim GetDir As String, Path As String
Dim dataFile As String, dataSheet As String, LastDataRow As Long
Dim i As Integer, FirstDataRow As Long
'********************************
RF_Summary_Template = ActiveWorkbook.Name 'summarybook
Summary = ActiveSheet.Name 'summarysheet
summaryColumn = Workbooks(RF_Summary_Template).Sheets(Summary).Cells(Columns.Count, 1).End(xlToLeft).Column + 1
CreateObject("WScript.Shell").Popup "First, browse to the correct directory, select ANY file in the directory, and click Open.", 2, "Select Install Base File"
GetDir = Application.GetOpenFilename("Excel Files (*.xls*), *.xls*")
If GetDir <> "False" Then
Path = CurDir & "\"
Else
MsgBox "Directory not selected"
Exit Sub
End If
Application.ScreenUpdating = False
dataFile = Dir(Path & "*.xls")
While dataFile <> ""
Workbooks.Open (dataFile)
Worksheets("Dashboard").Activate
ActiveSheet.Range("AY17:AZ35").Copy
Workbooks("RF_Summary_Template").Worksheets("Summary").Select
Range("B8").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Workbooks(dataFile).Close
summaryColumn = summaryColumn + 2
dataFile = Dir()
Wend
Workbooks(RF_Summary_Template).Save
Application.ScreenUpdating = True
End Sub
萬分感謝
你總是複製此範圍內? '範圍( 「AY17:AZ35」)'。你如何將它整合到主工作簿中?按列增量總是從第8行開始? – L42
是的,這是始終被複制的範圍(所有文檔都基於模板)。 在主片,柱A具有每個字段的名稱。我需要將每個複製的字段粘貼到此列的右側。第一個範圍將粘貼到B8:C24中。 – jamboree11
對於「下標超出範圍」的錯誤,失去了引號'RF_Summary_Template' - 這是一個變量,而不是一個工作表名稱。你應該有這個:'工作簿(RF_Summary_Template).Worksheets(「摘要」)Select' – barrowc