對不起,如果這是一個簡單的修復,我是VBA的新手。基本上我有一堆工作簿(輸入,稱爲測試),並希望將所有數據傳輸到一個新的工作簿(輸出,稱爲Batch1)。輸入中的前兩行需要合併到輸出中的第一行,我已經成功完成了這一步。將可變範圍的數據傳輸到新工作簿
其餘數據(輸入中所有表單中所有列的第3行和第2行)需要放在第2行中,並放在輸出中適當的列中。我想避免使用剪貼板,因爲我已經讀過,它使事情變得複雜。我相信我的問題是,我循環瀏覽工作表中的列意味着數據範圍是可變的,我試圖對此進行補救。這是我的代碼。
Sub Headings()
Dim WS_Count As Integer 'define variables
Dim j As Integer
Dim k As Integer
k = 1
Dim ws As Worksheet
Dim out As Workbook
Dim Data As Range
Dim Space As Range
Dim InC1 As Range
Dim InC2 As Range
Dim OutC1 As Range
Dim OutC2 As Range
Set out = Workbooks("Batch1.xlsm")
' Set up worksheet loop.
For Each ws In ActiveWorkbook.Worksheets
colCount = ws.UsedRange.Rows(1).Columns.Count 'Count number of coloumns in particular worksheet
RowCount = ActiveSheet.UsedRange.Rows.Count 'Count number of rows in particular worksheet
'Looped Code Follows
For j = 1 To colCount
ws.Activate 'Activate input worksheet in question
Parameter = Cells(1, j)
Units = Cells(2, j)
Combine = Parameter & " " & Units 'Combine top two rows with space between
Set InC1 = Cells(3, j)
Set InC2 = Cells(RowCount, j)
Set Data = Range("InC1:InC2")
out.Sheets("Sheet1").Activate 'Open output worksheet
Cells(1, k) = Combine 'Input values into output sheet
Set OutC1 = Cells(2, k)
Set OutC2 = Cells(RowCount, k)
Set Space = Range("OutC1:OutC2")
Space = Data
k = k + 1 'Steps through columns, keeping space in output
Next j
Next
End Sub
我一直在收到各種各樣的錯誤,我認爲這是關於如何爲每列「j」定義數據範圍。同樣出於某種原因,行計數返回47的值,儘管事實上每個輸入表中只有17-20行,這不會改變任何東西,但是很煩人。
請不要覺得你需要修復我的代碼,只是寫一個簡單的函數來顯示我在哪裏搞砸了綽綽有餘。
在此先感謝您的幫助!
嗨,對不起,我正在度假。它似乎工作,直到Space.Value = Data.Value行返回運行時錯誤1004:應用程序定義或對象定義的錯誤 – SteBarr
更新:它給了我那個錯誤,但似乎工作。無論如何要避免這種情況?我正在遠程編寫這些宏,以便在6月下旬開始實習。我擔心即使宏本身工作,如果出現錯誤消息,它也會顯得不專業。 – SteBarr
什麼錯誤信息和哪一行? @SteBarr –