Excel 使用RefEdit Userform复制列单元格数据

Excel 使用RefEdit Userform复制列单元格数据,excel,vba,Excel,Vba,我试图将大量信息从一个电子表格复制到另一个电子表格,以便更容易在一张纸上打印出来。所有数据都是按顺序和列列出的,需要按顺序打印 我正在尝试创建一个userform,通过复制不同的列范围并以完全相同的格式将它们粘贴到另一个电子表格中来加速这个过程,但是要以50个单元格的列为单位,每张纸最多4列 这是我目前得到的,但它只复制了第一个单元格: Private Sub UserForm_Click() UserForm1.RefEdit1.Text = Selection.Address

我试图将大量信息从一个电子表格复制到另一个电子表格,以便更容易在一张纸上打印出来。所有数据都是按顺序和列列出的,需要按顺序打印

我正在尝试创建一个userform,通过复制不同的列范围并以完全相同的格式将它们粘贴到另一个电子表格中来加速这个过程,但是要以50个单元格的列为单位,每张纸最多4列

这是我目前得到的,但它只复制了第一个单元格:

Private Sub UserForm_Click()


    UserForm1.RefEdit1.Text = Selection.Address


End Sub
Private Sub CommandButton1_Click()

    Dim addr As String, rng
    Dim tgtWb As Workbook
    Dim tgtWs As Worksheet
    Dim icol As Long
    Dim irow As Long


    Set tgtWb = ThisWorkbook
    Set tgtWs = tgtWb.Sheets("Sheet1")

    addr = RefEdit1.Value
    Set rng = Range(addr)


    icol = tgtWs.Cells(Rows.Count, 1) _
    .End(xlUp).Offset(0, 0).Column



    tgtWs.Cells(1, icol).Value = rng.Value


End Sub

任何帮助都将不胜感激。

您输出数据的方法只是引用单个单元格。您使用.Cells1、icol,它将只引用第1行中的单个单元格和单个列

为了将数据输出到更大的范围,需要引用更大的范围。最简单的方法可能是使用参照编辑范围的大小调整大小

我相信这对你有用。我更改了最后一行以包含一个调整大小的调用

编辑:我继续创建了一个虚拟示例来测试这一点:

单击按钮,它将粘贴


从触发“UserForm\u Click”事件的位置。使用“UserForm\u Initialize”事件而不是“UserForm\u Click”事件它来自工作簿tgtwb。信息在不同的工作簿中谢谢Byron,但由于某些原因,它根本不会将任何信息粘贴到任何单元格中。这可能是因为我使用的是Excel 2007吗?Excel版本不应影响这一点。我怀疑你的描述中缺少一些相关的东西。我刚刚创建了一个虚拟示例,其中包含两个工作簿和一个用于复制see编辑的UserForm,代码可以粘贴使用。感谢您的帮助。它正在工作。显然,包含数据的电子表格存在问题。一旦我们把它复制到一张新的纸上,它就像一个符咒。再次感谢
Private Sub CommandButton1_Click()

    Dim addr As String, rng
    Dim tgtWb As Workbook
    Dim tgtWs As Worksheet
    Dim icol As Long
    Dim irow As Long


    Set tgtWb = ThisWorkbook
    Set tgtWs = tgtWb.Sheets("Sheet1")

    addr = RefEdit1.Value
    Set rng = Range(addr)


    icol = tgtWs.Cells(Rows.Count, 1) _
    .End(xlUp).Offset(0, 0).Column



    tgtWs.Cells(1, icol).Resize(rng.Rows.Count, rng.Columns.Count).Value = rng.Value


End Sub