我有一個帶有兩個「標題列」的轉置表。該表格向右延伸太長,我希望能夠將該表格分成幾個「n」列,同時還將兩個標題列複製到每個新表格。我可以找到的所有示例只分割每個「n」行,而我想分割每個「n」列。VBA Excel每隔n列拆分一張表
我發現很難用純文本解釋這一點,所以附上屏幕截圖:在此示例中,第一張工作表包含原始數據,後續工作表包含宏的已知結果,工作表在此處分割每兩列:
我有一個帶有兩個「標題列」的轉置表。該表格向右延伸太長,我希望能夠將該表格分成幾個「n」列,同時還將兩個標題列複製到每個新表格。我可以找到的所有示例只分割每個「n」行,而我想分割每個「n」列。VBA Excel每隔n列拆分一張表
我發現很難用純文本解釋這一點,所以附上屏幕截圖:在此示例中,第一張工作表包含原始數據,後續工作表包含宏的已知結果,工作表在此處分割每兩列:
Sub colsplit()
Dim wssrc As Worksheet
Dim wsdest As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set wssrc = ActiveWorkbook.Sheets("Source")
'getting No of columns
lcol = wssrc.Cells(1, Columns.Count).End(xlToLeft).Column
On Error GoTo resetsettings
'getting User input to split count
col = InputBox("Enter Number of columns to split")
If IsNumeric(col) And col <> "" And col > 0 Then
desti = 1
For i = 3 To lcol
Set wsdest = Sheets.Add(After:=Sheets(Sheets.Count))
wsdest.Name = "split" & desti
'copying header columns to new sheets
wssrc.Columns(1).EntireColumn.Copy Destination:=wsdest.Cells(1, 1)
wssrc.Columns(2).EntireColumn.Copy Destination:=wsdest.Cells(1, 2)
desti = desti + 1
x = 3
For j = i To (i + col - 1)
'Copying other columns to new sheet
wssrc.Columns(j).EntireColumn.Copy Destination:=wsdest.Cells(1, x)
x = x + 1
Next j
i = i + col - 1
Next i
Else
End If
resetsettings:
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
此代碼將拆分列並將它們粘貼到新工作表。
這不是我清楚你需要什麼,宏? SE不是一種編碼服務。請嘗試freelancer.com或類似的來源。
如果您想要一個快速而有趣的解決方案:記錄您的手動任務以將此表拆分爲宏。然後,如果你需要它,你可以運行它的僕人時間。 如果您不知道如何手動執行此操作,請發表評論,然後我會解釋。
哇,那正是我一直在尋找的!非常感謝! – LarsS