1. 打开Visual Basic,添加模块和过程,称之为“定向拆表”。
2. 如图将同步建表和拆数据的代码复制到此过程中,建表拆数据的操作步骤可参考以下文章。
3. 定义一个新变量l,并且为其赋值InputBox (“请问按第几列建表拆数据”)。
4. 变量l是单元格所在的列,要和建表拆数据的代码关联,就需要把其中的Range单元格形式用Cells来表示,这样就可以同时对行列使用变量。
Sub 定向拆表()Dim sht As WorksheetDim i, j, k, l As IntegerDim krow As Integer '此为数据总行数l = InputBox("请问按第几列建表拆数据")'建表krow = Sheet1.Range("A10000").End(xlUp).RowFor j = 2 To krowi = 0For Each sht In SheetsIf sht.Name = Sheet1.Cells(j, l) Theni = 1End IfNextIf i = 0 ThenSheets.Add after:=Sheets(Sheets.Count)Sheets(Sheets.Count).Name = Sheet1.Cells(j, l)End IfNext'拆分数据For k = 2 To Sheets.CountSheet1.Range("A1:F"&krow).AutoFilterField:=l, Criteria1:=Sheets(k).NameSheet1.Range("A1:F" & krow).Copy Sheets(k).Range("A1")NextSheet1.Range("A1:F" & krow).AutoFilterEnd Sub
5. 执行以上代码后,会先弹出一个窗口询问。
6. 例如在空白框中输入2。
7. 点击“确定”后,就会新建工作表并拆分相应的数据到各个工作表中。
8. 如果要按照其他列进行拆分,只需在弹窗的空白框中输入相应的列数即可。
以上示例仅用于演示,实际应用场景请根据自己的需要进行相应的设计或调整。