我需要將成對的課程代碼和各個類別從幾個工作表上的兩個非相鄰列複製到編譯所有對的單個工作表中。將列編譯爲單個工作表
一門課程可能分爲三個或四個類別,並存在三個或四個工作表上,我需要對每一個進行獨特的觀察。
我有其他工作表一樣,所以我不能簡單地使用像
Select Case sh.Name
Case Is <> "All Course Codes"
我也不能使用硬編碼的範圍對於任何給定的工作表,因爲他們都是不同的,經常變化的。儘管如此,數據一直在列A和D中。我有VBA的瞭解甚少,所以我已經從各種渠道拼湊起來的:
Dim sh As Worksheet
Dim DestSh As Worksheet
Dim LastRow As Long
ActiveWorkbook.Worksheets("Course Codes").Delete
Set DestSh = ActiveWorkbook.Worksheets.Add
DestSh.Name = "Course Codes"
DestSh.Cells(1, 1).Value = "Category"
DestSh.Cells(1, 2).Value = "Course Code"
For Each sh In ActiveWorkbook.Worksheets
Select Case sh.Name
Case "Category1", "Category2", "Category3", "Category4", "Category5", "Category6"
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
ThisValue = Cells(x, 4).Value
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
For x = 2 To FinalRow
If ThisValue <> "" Then
Cells(x, 1).Copy
Destination DestSh.Cells(NextRow, 1).Select
End If
Next
End Select
Next
End Sub
要解釋,我試圖按名稱選擇每張紙上,然後運行落筆列d和複製來自A的數據而D只要在數據表中有一個D值,就可以在新表格的A和B列。
一旦用完了數值,它就會前進到下一張紙上,並將新副本追加到「課程代碼」編譯表的列表底部。
宏運行,創建新工作表,並正確標題列。但是,它不會將任何所需的信息複製到此新表中。我在這裏犯了什麼錯誤?
預先感謝您的幫助,並告訴我是否有任何信息我缺少以獲得準確答案。
有一個你的代碼很少出現以下問題:1.你正在使用沒有初始值的x(ThisValue = Cells(x,4).Value)2. NextRow應該是「FinalRow + 1」而不是再次查找最後一行3.這不是pasti數據:只需複製,然後選擇目的地範圍 –