【发布时间】:2013-09-28 14:51:35
【问题描述】:
我在 Excel 中有这个问题,我想在 VBA 中使用宏来解决。我有一张包含这种格式数据的表格:
separator
1
2
6
3
8
342
532
separator
72
28
10
21
separator
38
23
234
我想要做的是创建一个 VBA 宏,为每个数据系列创建一个新工作表(一个系列从“分隔符”开始,在下一个之前或在初始工作表的末尾结束)并复制新表格中的相应数据。 示例:
1
2
6
3
8
342
532
在工作表 1 中
72
28
10
21
在 sheet2 等中。 非常感谢,我很感激! 这会将数据从开头复制到第一个分隔符(“q”):
Sub macro1()
Dim x As Integer
x = 1
Sheets.Add.Name = "Sheet2"
'Get cells until first q
Do Until Sheets("Sheet1").Range("A" & x).Value = "q"
Sheets("Sheet2").Range("A" & x).Value = Sheets("Sheet1").Range("A" & x).Value
x = x + 1
Loop
End Sub
【问题讨论】:
-
What I want to do is to create a VBA macro that creates a new sheet for every series of data...酷!你能告诉我们你到目前为止都尝试了什么,你到底在哪里得到错误? -
Sub macro1() Dim x As Integer x = 1 Sheets.Add.Name = "Sheet2" 'Get cells until first q Do Until Sheets("Sheet1").Range("A" & x).Value = "q" Sheets("Sheet2").Range("A" & x).Value = Sheets("Sheet1").Range("A" & x).Value x = x + 1 Loop End Sub分隔符是“q”,这只会创建一个新工作表 (sheet2) 并添加所有数据,直到该工作表中的第一个“q”。下一个? -
你能用代码更新你的问题吗? cmets中的代码真的很难看懂……
-
完成!更新了问题