【发布时间】:2013-06-04 19:05:26
【问题描述】:
我在为我的macro 实现预期结果方面遇到了一些困难。
意图:
我在sheets(input).column A 中有一个数据列表(具有值的行数会有所不同,因此我创建了一个循环,该循环将运行宏,直到活动单元格为空白)。
我的宏从Range(A2) 开始,一直延伸到 A 列,只有在遇到空白行时才会停止
宏的预期结果是开始复制sheet(input).Range(A2) 中的单元格值,并将其粘贴到sheet(mywork).Range(B2:B6)。
例如,如果“Peter”是单元格 sheet(input),range(A2) 中的值,那么当 marco 运行时,将该值粘贴到 sheet(mywork) range(B2:B6) 中。即范围B2:B6 将反映“彼得”
然后宏循环回到工作表(输入)并复制下一个单元格值并将其粘贴到range(B7:B10)
示例:“Dave”是sheet(input) Range(A3) 中的值,然后“Dave”将粘贴到sheet(mywork).Range(B7:B10) 中接下来的 4 行。 B7:B10 将反映“戴夫”
再次重复相同的过程,这次将返回工作表(输入)range(A4),将值复制到工作表(mywork)并将其粘贴到B11:B15。
这个过程基本上是重复的......
当sheet(input) column A中的activecell为空时,宏结束。
Sub playmacro()
Dim xxx As Long, yyy As Long
ThisWorkbook.Sheets("Input").Range("A2").Activate
Do While ActiveCell.Value <> ""
DoEvents
ActiveCell.Copy
For xxx = 2 To 350 Step 4
yyy = xxx + 3
Worksheets("mywork").Activate
With ActiveSheet
.Range(Cells(xxx, 2), Cells(yyy, 2)).PasteSpecial xlPasteValues
End With
Next xxx
ThisWorkbook.Sheets("Input").Select
ActiveCell.Offset(1, 0).Activate
Loop
Application.ScreenUpdating = True
End Sub
【问题讨论】:
标签: vba excel excel-2010