【问题标题】:Loop through range over cells after each cell is copied print a sheet [closed]复制每个单元格后循环遍历单元格范围打印一张表[关闭]
【发布时间】:2021-07-29 10:34:13
【问题描述】:

我已经制作了一张表格,以便有人可以记录一些关于托盘和产品代码的参考资料。我希望他们能够在他们输入完所有数据后将其打印为我在另一张纸上制作的标签。

我需要一些代码来允许我在工作表(“In(New)”)上循环遍历一个范围(“B5:最后一行”),并且每次找到一个 Ref 时,它都会从 B 复制值(无论如何)和它旁边的 C 值并将其粘贴到我的标签工作表(“标签”)上(“K17:L17”)范围内,然后使用默认打印机打印标签。

【问题讨论】:

    标签: excel vba loops printing


    【解决方案1】:

    在工作表In (New)的代码模块中,我建议使用类似

    Option Explicit
    
    Sub PrintLabels()
        Dim oCell
    
        'Loop through all cells B5 and below, as long as they're not empty
        For Each oCell In Range("B5", Range("B5").End(xlDown))
            'Copy cell B? and the cell on its right and paste in label!K17
            Range(oCell, oCell.Offset(1)).Copy Sheets("label").Range("K17")
    
            'Print sheet to the default printer
            Sheets("label").PrintOut
        Next
    End Sub
    

    如果B5 下方的某些单元格为空(非连续数据),这将不起作用。
    在这种情况下,请将Range("B5").End(xlDown) 替换为以下内容。
    它在工作表中查找包含数据的最后一行。

    "B" & Cells.Find("*", Searchrder:=xlByRows, searchdirection:=xlPrevious).Row
    

    如果您想调整代码以更准确地匹配您的工作簿,请阅读以下文档文章:

    【讨论】:

    • 非常感谢!感谢您提供额外的链接!效果非常好,我需要修改的只是将代码从 Sheet 更改为 Sheets。再次感谢!
    • 不客气!我为床单道歉,我编辑了答案。试着用这个例子来了解 VBA 是如何与 Excel 一起工作的,很酷 ^^
    • 完全没有问题,感谢您的帮助!并且 VBA 与 excel 相结合在一些帮助下非常强大,我已经完成了一些我从不知道 excel/vba 能够做到的事情。有没有什么特定的网站/课程可以推荐给有基本理解的人来升级它,以便自信地编写漂亮的长代码(但简洁易懂:))?
    • 不,抱歉。我主要是通过尝试、阅读 SO 和其他论坛上的文档和主题来学习的(mrexcel.com 非常好)。
    猜你喜欢
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    • 2018-01-18
    • 2020-01-30
    • 1970-01-01
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多