宏不会停止在Excelsheet的最后一行之后

时间:2018-08-31 17:20:43

标签: excel-vba excel-2016

我不是Excel我正在创建“自动表单填充机制”。到目前为止,一切都一切顺利,这要归功于Stackoverflow及其用户,对此非常感谢。我对项目的了解越深,它就会变得越复杂,因为我不是程序员,所以请确保对我来说……复制,粘贴和编辑现有代码是我大多数时候都知道的事情。

Excel工作簿的情况:我将数据从几张纸变成一张纸。我的VBA将一张纸的数据放入书签中的几个Word文档中。这很好。在此工作表上,我绘制了公式,直到第30行为止,我的源工作表再也没有得到比该行数更多的信息。目的是如果源单元为空,则目标单元也保持为空。哪里出了问题。我用来保持单元格为空的公式是这样的:

=IF(Sheet1!A1="";"";Sheet1!A1)

在我的VBA中,我得到了下一个代码段:

With Sheets("Sheet2")
    lonLastRow = .Cells(Rows.Count, "A").End(xlUp).Row
    Set rngData = .Range(.Cells(2, 1), .Cells(lonLastRow, 1))
End With

完成宏后,屏幕上会显示一条消息,显示用该数据生成了多少文件,每一行都有一个生成文件的数据。我收到此消息的方式是使用以下代码:

MsgBox "Aantal gegenereerde documenten: " & lonLaatsteRij

EN翻译:(MsgBox“生成的文档数:&lonLastRow”)

我的宏进入第30行,其中1个带有标题,而29个带有数据。在第30行之后,没有数据。问题在于宏在数据的最后一行之后没有停止。例如:如果我有10行数据,宏将一直排到第30行,因为即使单元格中没有数据显示,我的公式也会一直绘制到第3行。

我正在寻找的是一种在数据最后一行之后停止的方法。当没有数据输入时,保持单元格清晰显然是不够的。我想这需要使用VBA解决...但是什么呢?

我有类似的用法要使用,但是我不知道确切的实现方式

For Each c in rngData
   If c.Value = "" Then ... Else ...
Next c

有人愿意帮助我吗?

0 个答案:

没有答案