我目前有一张包含多行(Excel最大值)的大张(Sheet1),我想将其解析为276行/列的集合到带有标题的单独图纸上。
Sheet2的标题来自A列(重复276次,因此只需要选择一次),而数据则在C和D中。
我尝试使用VBA录制宏,但我没有编辑循环所有行的知识。
这似乎有帮助,但它并不完全存在。 https://sites.google.com/a/madrocketscientist.com/jerrybeaucaires-excelassistant/parse-functions/columns-to-sheets
我记录的宏:
Sub snp()
'
' snp Macro
' transpose snp
'
' Keyboard Shortcut: Ctrl+q
'
Sheets("Sheet1").Select
Range("C24566").Select
Application.Goto Reference:="R24566C3:R24841C4"
Selection.Copy
Sheets("Sheet2").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
ActiveWindow.SmallScroll Down:=252
Range("A24841").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet2").Select
Range("FX1").Select
ActiveSheet.Paste
End Sub
但是这个宏一遍又一遍地做同样的事情(因为我没有任何宏知识知道如何让它跳到下一组276 ......)。
帮助?谢谢!
答案 0 :(得分:1)
以下代码做了一些假设:
根据您的需要调整此项,但这应该可以帮助您开始
Sub Parse()
Dim SheetNum As Integer
Dim Par As Range
SheetNum = 2
Do While Sheets("Sheet1").Range("A1") <> ""
Sheets.Add.Name = "Sheet" & SheetNum
X = Sheets("Sheet1").Range("A1").Offset(256, 0).Address
Sheets("Sheet1").Range("A1:" & X).Copy
Sheets("Sheet" & SheetNum).Range("A1").PasteSpecial
Sheets("Sheet1").Rows("1:256").Delete
SheetNum = SheetNum + 1
Loop
End Sub
我只是想我会扩展这个答案,这样你就可以学习一些东西,并培养你的VBA技能:
Do While Sheets("Sheet1").Range("A1") <> ""
这将从loop
开始,条件是loop
将一直运行,直到表单1中的范围为Empty
Sheets.Add.Name = "Sheet" & SheetNum
添加一张带有工作表编号
X = Sheets("Sheet1").Range("A1").Offset(256, 0).Address
Sheets("Sheet1").Range("A1:" & X).Copy
Sheets("Sheet" & SheetNum).Range("A1").PasteSpecial
Sheets("Sheet1").Rows("1:256").Delete
将 X
设置为地址然后复制,然后将新创建的工作表粘贴到复制的单元格中。然后删除原始单元格。
SheetNum = SheetNum + 1
在到达loop
命令之前将工作表编号递增1并继续循环,直到设置了条件。