VBA 剪切粘贴转置 - 重复

VBA Cut Paste Transpose - Repeat

提问人:Derek Pyburn 提问时间:10/13/2023 最后编辑:Derek Pyburn 更新时间:10/21/2023 访问量:52

问:

我想编写一个脚本,这样我就可以在评估表单上放置一个按钮,该按钮将从另一个文件或工作表中提取范围(例如:姓名、标题、收入)。每次按下宏按钮时,复制或剪切的数据都需要来自源表中的下一行,并覆盖评估表单工作表上的数据。复制的数据也需要转置。

到目前为止,这个修改后的脚本是我最接近的。我编写了一个单独的宏,用于从源文件中提取数据并将其放入评估工作簿的新工作表中。此脚本将剪切并粘贴同一工作表中的列表。我不确定是否是 with 语句阻止我将目标范围修改为另一张工作表。

  Set wsCopy = Workbooks("Report.xlsx").Worksheets("Injury")
  Set wsDest = Workbooks("HR TEST.xlsm").Worksheets("Evaluation")
    
    '1. Find last used row in the copy range based on data in column A
    lCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, "A").End(xlUp).Row
      
    '2. Find first blank row in the destination range based on data in column A
    'Offset property moves down 1 row
    lDestLastRow = wsDest.Cells(wsDest.Rows.Count, "A").End(xlUp).Offset(1).Row
    
    ' New content from copy paste transpose
With wsCopy
        
    
    '3. Clear contents of existing data range
    wsDest.Range("A2:G" & lDestLastRow).ClearContents

    '4. Copy & Paste Data
    wsCopy.Range("A2:G2").Copy
    wsDest.Range("A2").PasteSpecial Transpose:=True
Excel VBA 复制粘贴 转置

评论

0赞 SJR 10/13/2023
.Range表示它指的是因为点。ThisWorkbook.Sheets("Sheet3")
0赞 Derek Pyburn 10/16/2023
我假设你的意思是代码底部的范围。如果我更改 .Range(strPasteAddress) 添加到不同的工作表中,可以解决问题吗?
0赞 VBasic2008 10/16/2023
您能否分享工作表的屏幕截图(目的地的预期结果)?此外,添加第一个代码,因为不清楚为什么需要复制数据两次(添加说明)。
0赞 Derek Pyburn 10/21/2023
我复制了两次,因为我无法从原始源文件中引用它。我更新了代码,能够从源文件中提取数据并将其转置到指定区域。现在的问题是让它循环到源文件中的下一行进行复制和粘贴。

答: 暂无答案