如何创建宏以有条件地逐行打印单个单元格内容

时间:2019-04-24 22:13:43

标签: excel vba

在制造工厂中执行wifi天线测试,其中将每个零件的值连续记录下来;我需要创建一个Excel宏以根据真/假条件打印要标记的单元格内容。

我只为打印步骤记录了Macro,但是不确定在输入数据后如何触发给定单元格中每一行的打印作业。

我创建了一个单元格,如果每个测试的所有记录值都在公差范围内,则输入结果“通过”或“失败”。我要实际打印的是序列号的缩写,因此此公式是记录每个零件的值后应打印的内容的基础: = IF(K26 =“ PASS”,RIGHT(A26,53),“ FAIL”),其输出C26-1-09-00194-12-0e.01.12.0c.0b-02.02.03.00.84.94.84.8实例。

对于每行,根据通过或失败的结果,我需要一个标签来打印序列号。基本上只需要知道如何触发每一行的宏以及用于打印的代码即可。

1 个答案:

答案 0 :(得分:0)

您可以将打印代码放入工作表的更改事件中(Worksheet_Change):

enter image description here

请记住,将打印区域设置为要打印的单元格。 请记住,Target参数是已更改的单元格。

请参见下面的示例。您将必须将PrintArea设置为正确的单元格。在这里,我使用的是更改后的单元格地址,如果我理解正确的话,该地址不是您要打印的单元格。

Private Sub Worksheet_Change(ByVal Target As Range)

    Application.DisplayAlerts = False
    Application.EnableEvents = False

    Target.Value = Target.Address

    Me.PageSetup.PrintArea = Target.Address
    Me.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False

   Application.EnableEvents = True
   Application.DisplayAlerts = True
End Sub