当工作表不为空时,Excel会执行

时间:2018-03-29 20:24:50

标签: excel vba

我的宏有问题:

<div class=phone-hidden>
<h1> .....</h1>
</div>

我希望它继续直到表单完全为空,请问我应该在哪里插入代码以及它应该是什么样的?

非常感谢你的帮助

1 个答案:

答案 0 :(得分:0)

简短的回答是你需要用范围变量替换所有“selection”,并且还要为其他对象使用变量。宏录制器添加的“selection”和“.select”会导致问题。

例如,下面是一些代码可以执行代码所做的操作,假设每个工作表上最初选择的单元格为A1,并且Hárok2顶部有空白行但不在List3表的顶部。我确实做了这些假设,因为你没有提供你的数据。

也许这段代码将提供一个起点。一旦你将它应用到你的情况,你可以添加一个循环,以便它将清除表格,如你所说。随意提问。

enter image description here

我在代码中添加了“.select”语句,以便您可以单步执行它并查看其工作原理,但是一旦您了解了工作原理,就可以删除(并且应该删除)。

Option Explicit
Dim sh1 As Worksheet, sh2 As Worksheet
Dim r1 As Range, r2 As Range
Sub transferTest()

Set sh2 = Worksheets("Hárok2")
Set r2 = sh2.Range("A1").End(xlDown)
r2.Select
Set r2 = sh2.Range(r2, r2.End(xlDown))
r2.Select
r2.copy
Set sh1 = Worksheets("List3")
sh1.Activate
Set r1 = sh1.Range("A1").End(xlDown).Offset(1, 0)
r1.Select
r1.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
sh2.Select
r2.ClearContents
End Sub