我正在處理一個宏,將不同數目的單元格複製到一行,轉置並粘貼到另一個表單中,在下一個空一列中的單元格。然後這個想法是將每個轉置項目與來自它的行的ID進行匹配。 ID列中的行數也會有所不同。複製一行不同的長度,轉置它,並粘貼在列的末尾
查看下面的示例,ID 1與Co D和Co R相關聯。轉置將創建需要將ID 1複製到與目標相鄰的兩個單元中。我創建的這個例子將它們放在同一張紙上,但對於代碼本身,它將放在另一張紙上。
的問題出現在複製的範圍內進行轉置。我似乎無法弄清楚如何抓住整排。宏正確地將值粘貼到目標中的下一個可用單元格中,但現在我所擁有的代碼版本只複製行中的最後一個結果,而不是整個行的意圖。我甚至沒有得到在目標列中將ID與Co匹配的部分,但我已經對此感到厭煩。我的代碼如下:
Sub Testing()
Dim TearS As Worksheet: Set TearS = Worksheets(1)
Dim FeeS As Worksheet: Set FeeS = Worksheets(2)
Dim EntryS As Worksheet: Set EntryS = Worksheets(3)
Dim Stage2 As Worksheet: Set Stage2 = Worksheets(4)
Dim Stage3 As Worksheet: Set Stage3 = Worksheets(5)
Dim Bbg As Range: Set Bbg = EntryS.Range("F4:T199")
Dim TDest As Range: Set TDest = Stage2.Range("F5:T200")
Dim DateA As Range: Set DateA = Stage2.Range("G5:G200")
Dim DateB As Range: Set DateB = TearS.Range("E5:E200")
Dim DesA As Range: Set DesA = Stage2.Range("J5:J200")
Dim DesB As Range: Set DesB = TearS.Range("O5:O200")
Dim DesC As Range: Set DesC = Stage3.Range("C5:C200")
Dim CpnMatA As Range: Set CpnMatA = Stage2.Range("Y5:Y200")
Dim CpnMatB As Range: Set CpnMatB = TearS.Range("P5:P500")
Dim SettA As Range: Set SettA = Stage2.Range("I5:I200")
Dim SettB As Range: Set SettB = TearS.Range("Q5:Q200")
Dim MinA As Range: Set MinA = Stage2.Range("AA5:AA200")
Dim MinB As Range: Set MinB = Stage3.Range("D5:D200")
Dim MWOB As Range: Set MWOB = TearS.Range("N5:N200")
Dim Cel As Range
For Each Cel In DesC
If IsEmpty(Cel) = False Then
Cel.Offset(0, 1).End(xlToRight).Copy
TearS.Range("N3").End(xlDown).Offset(1).PasteSpecial Paste:=xlPasteAll, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=True
End If
Next Cel
End Sub
編輯:Jeeped的解決方案,您可以在下面的答案中看到作品游泳。確保源數據中沒有錯誤,否則可能會出現運行時錯誤13.
一)請不要要求建議或鏈接到外部的學習資源。這是**特別**結束問題的理由。 b)雖然個人品味可能是一個因素,但我發現msdn.microsoft.com是一個非常寶貴的資源。您還可以查看[SO VBA文檔站點](https://stackoverflow.com/documentation/vba)。 – Jeeped
我看到你厭倦了在示例數據中輸入內容,並開始複製第4行中的第5-9行。在證明提出的答案之前,你認爲我想重新輸入數據嗎? – Jeeped
如果您使用的是Excel 2010或更高版本,則可以使用Power Query或Data - > Get&Transform來清除列1以外的列。如果您需要宏,請記錄一個宏。 –