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

时间:2018-08-01 20:23:58

标签: excel vba

我有一个包含2张纸的Excel工作簿:第一张纸上有一个表单,第二张纸上有一个包含多位数据的列表。使用第二张工作表I'm using this fabulous macro中的数据(我是BranislavKollá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)”,但似乎无济于事。

有人知道这样做的方法吗?

1 个答案:

答案 0 :(得分:0)

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

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