【问题标题】:Copy non-contiguous selection from workbook to another workbook将非连续选择从工作簿复制到另一个工作簿
【发布时间】:2022-02-17 13:47:22
【问题描述】:

我将数据从工作簿复制到另一个工作簿,single contiguous selection 的复制工作没有问题。
但是,如果我复制了两个选择(使用 CTRL),即使是相邻的,也没有复制到目标工作簿(没有引发错误)。
如何调整以下代码以使其将非连续选择从工作簿复制到另一个?
提前感谢有用的答案和cmets。

    Dim wb As Workbook: Set wb = ThisWorkbook    'Source Workbook
    Dim srg As Range: Set srg = wb.ActiveSheet.Range(Selection.Address)
 
    Dim wb1 As Workbook: Set wb1 = Workbooks.Add  'Destination Workbook
    Dim drg As Range: Set drg = wb1.Sheets(1).Range("A1")
 
    srg.Copy drg
    srg.Copy
    drg.PasteSpecial Paste:=xlPasteColumnWidths
 
    Dim r As Range
      For Each r In drg.Rows
        r.WrapText = True
         If r.RowHeight < 40 Then r.RowHeight = 40  'This line works
           Next r

【问题讨论】:

  • 您必须在某处出现 on 错误,因为这会引发错误。
  • @SJR ,未引发错误,但未在目标工作簿上粘贴值。
  • 也许试着先把你的srg.Copy drg.PasteSpecial Paste:=xlPasteColumnWidths 行放在前面,然后把srg.Copy drg 放在前面。但选择必须是同一列中的行。

标签: excel vba copy range


【解决方案1】:

这个答案指的是@karma
只是我需要复制列宽然后复制它之后的值。

srg.Copy
drg.PasteSpecial Paste:=xlPasteColumnWidths
srg.Copy drg

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多