gpt4 book ai didi

vba - 打印每行副本之前的最后一行和单元格区域的发送值

转载 作者:行者123 更新时间:2023-12-04 20:42:05 25 4
gpt4 key购买 nike

我发现以下代码模拟 MS Word 邮件合并功能,但仅在 Excel 单元格中。

它的目的是在打印前将范围内每一行的单个单元格值发送到另一个单元格,以便可以打印多个副本,每个副本上都有不同的名称以进行合理化,例如打印时间卡以分发给每位员工。

但是,我无法弄清楚如何将其应用于将每行的三个单元格范围(在列 A:C 来自雇员表)发送到另一个三个单元格范围( X50:X52 Sheet1 中,而不仅仅是一个单元格。有什么想法吗?

Sub Macro1()
Dim lastRow As Integer '
Dim r As Integer
lastRow = Sheets("Employees").Cells(Rows.Count, "A").End(xlUp).Row

For r = 1 To lastRow
Sheets("Sheet1").Range("D1").Value = Sheets("Employees").Range("A" & r).Value
ActiveWindow.SelectedSheets.PrintOutNext r
End Sub

最佳答案

您可以使用 Application.Transpose将一行数据翻转为一列数据。下面我也用Resize从列中获取 3 个单元格 A:C . Resize比尝试使用 & 构建范围要容易得多和列字母。它返回一个新的 Range那是 3 列而不是之前的 1 列。

Sub Macro1()
Dim lastRow As Integer '
Dim r As Integer
lastRow = Sheets("Employees").Cells(Rows.Count, "A").End(xlUp).Row

For r = 1 To lastRow
Sheets("Sheet1").Range("X50:X52").Value = _
Application.Transpose(Sheets("Employees").Range("A" & r).Resize(, 3).Value)

ActiveWindow.SelectedSheets.PrintOutNext r
Next r
End Sub

请注意,当使用 Range 选择多个单元格时并调用 .Value ,你会得到一个值数组。在这种情况下,数组是 1 行乘 3 列。 Application.Transpose将此数据转换为 3 行 x 1 列。

关于vba - 打印每行副本之前的最后一行和单元格区域的发送值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30945389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com