更改内容时在Excel中打印动态值-空白除外

  • 本文关键字:动态 空白 打印 Excel excel vba
  • 更新时间 :
  • 英文 :


我有一个Excel工作簿,有两张表:第一张是表格,第二张是包含多个数据位的列表。使用第二张表中的数据,我使用了这个绝妙的宏,我在Branislav Kollár的SO上找到了这个宏来更改和打印完全完成的表格。

Sub PrintAll_IDs()
For Each myCell In Worksheets(2).Range("A1:A50") 'range with stored ID's
Worksheets(1).Range("A1") = myCell.value ' "A1" is the cell with ID that you change manually now
Worksheets(1).PrintOut ' I'm not sure how to print using VBA, just showing the workflow
Next myCell 
End Sub

问题是,为了让它工作,你必须手动调整打印范围(在这种情况下,A1:A50(,我希望它是完全自动的,比如:读取数据表列中的第一个值,然后继续,直到找不到更多数据为止。

如果找到空白单元格,我尝试添加"If"语句来终止进程,还添加了".End(x1Down(",但似乎什么都不起作用。

有人知道怎么做吗?

有很多方法可以做到这一点。这是一对。

option explicit
Sub PrintAll_IDs()
dim myCell  as range
with Worksheets(2)
'range with stored ID's
For Each myCell In .Range(.cells(1, "A"), .cells(.rows.count, "A").end(xlup))
...
Next myCell 
end with
End Sub
Sub PrintAll_IDs()
dim myCell  as range
with Worksheets(2)
'range with stored ID's
For Each myCell In .Range("A:A").specialcells(xlcelltypeconstants, xlnumbers+xlTextValues)
...
Next myCell 
end with
End Sub

最新更新