VBA Excel每隔n列拆分一个工作表

我有一个带有两个“标题列”的转置表。 这个表格拉长了太长的时间,我希望能够将这个表格分成几个“n”列,同时将两个标题列拷贝到每个新的表格中。 我所能find的所有例子只是将每行“n”分开,而我想将每个“n”列分开。

我发现很难用纯文本解释这个问题,所以我附上了屏幕截图:在这个例子中,第一个工作表包含原始数据,后面的工作表包含macros的内部结果,工作表每两列分割一次:

在这里输入图像说明 在这里输入图像说明 在这里输入图像说明 在这里输入图像说明

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 

此代码将拆分列并将其粘贴到新工作表。

我不清楚你需要什么,一个macros? SE不是一种编码服务。 请尝试freelancer.com或类似的来源为此。

如果你想要一个快速而有趣的解决scheme:logging你的手动任务,把这个表格分解为macros。 然后,如果你需要它,你可以运行它的仆人时间。 如果你不知道如何手动做到这一点,留下评论,我会解释一下。