在Sheet1上,我有三列需要在其中输入数据 . 这三列将始终在同一行中结束,但最后一行将随每组数据而变化 .
Sheet2获取Sheet1上三列中给出的信息,并将其应用于将其置于某种格式的公式,我需要将其复制并粘贴到另一个程序的txt文件中 .
Sheet2上的公式都包含IF(ISBLANK)公式,只有在Sheet1上输入数据时才填充单元格 . 如果Sheet1上没有输入数据,则false参数会向单元格返回“” .
我想要Sheet1上的一个宏或控制按钮,它将复制Sheet2上的A6:B500范围,但仅当使用Sheet1中的数据填充单元格时,才使IF公式成立 .
以下是正在发生的代码:
表1已经说明,并没有什么特别之处 .
表2包含以下从A6开始并且每5个单元格向下直到它达到A:496
=IF(ISBLANK(Sheet1!A2),"","host "&(INDIRECT(E6))&" {")
这些公式还继续更新Sheet1中单元格的位置 . 从B7到B10开始,有更多文本的类似公式,从表1中取出的单元格被更新,直到B列达到B500,这些公式如下:
B7: =IF(ISBLANK(Sheet1!C2),"","hardware ethernet "&(INDIRECT(E7))&";")
B8: =IF(ISBLANK(Sheet1!B2),"","fixed-address "&(INDIRECT(E8))&";")
B9: =IF(ISBLANK(Sheet1!A2),"","option host-name "&""""&(INDIRECT(E9))&""";")
B10: =IF(ISBLANK(Sheet1!A2),"","}")
到目前为止,我的宏看起来像这样:
Sub CommandButton1_Click()
Dim rng As Range
If Not Selection Is Nothing Then
Set rng = Sheets("Sheet2").Range("Sheet2!A6:Sheet2!B500").Cells.SpecialCells(xlCellTypeVisible)
rng.Copy
End If
End Sub
我遇到的问题是,无论输入什么数据,宏都会复制范围内的所有单元格,并且在可见数据之后我有一堆空的新行 .
1 回答
您应该检查字符串的长度,而不是它们是
Visible
类型 . 可见性主要与隐藏细胞相关 . 请尝试以下方法:这应突出显示评估为
""
的单元格 . 见下面的截图:希望这可以帮助 .