将一个Excel工作表中的命名范围复制到另一工作表中的命名范围

卡罗琳·奥林(Caroline Olyn)

我一直试图将一个Excel工作表中的命名范围复制到另一工作表中的命名范围

Sub Update()
'update availability and utilisation to SMU Tracking sheet

Application.ScreenUpdating = False
Dim ws1 As Worksheet:
    Set ws1 = Worksheets("Delays_a") 'source

Dim ws2 As Worksheet:
    Set ws2 = Worksheets("SMU Tracking") 'destination

'copy
ws1.Range("Productivity").Copy
ws2.Range("ProductivitySMU").Select
ws2.Range("ProductivitySMU").Paste

Application.CutCopyMode = False
Application.ScreenUpdating = True

End Sub

任何帮助表示赞赏。

更新:

我也尝试过这段代码

Sub CommandButton2_Click()
'update availability and utilisatioon to SMU Tracking sheet

Dim ws1 As Worksheet:
    Set ws1 = Worksheets("Delays_a") 'source

Dim ws2 As Worksheet:
    Set ws2 = Worksheets("SMU Tracking") 'destination

'copy
ws1.Range("Productivity").Copy 'cells to copy

lrow = 1500000
For i = 5 To lrow
    If Cells(i, 7) = "" Then 'If cell is empty then paste new value
    ws2.Range("ProductivitySMU").PasteSpecial xlPasteValues
    End If
Next i
End Sub

问题是这些值将粘贴到Range(“ ProductivitySMU”)中的所有空单元格中。

瓦里阿图斯

请尝试此代码。它将新数据附加到目标范围的现有内容中。

Private Sub CommandButton2_Click()
    'update availability and utilisatioon to SMU Tracking sheet
    
    Dim ws1     As Worksheet                    ' source
    Dim ws2     As Worksheet                    ' destination
    Dim Rt      As Long                         ' target row
    Dim Ct      As Long                         ' target column
    
    Set ws1 = Worksheets("Delays_a")
    Set ws2 = Worksheets("SMU Tracking")
    
    With ws2.Range("ProductivitySMU")
        Ct = .Column
        Rt = ws2.Cells(.Row, Ct).End(xlDown).Row + 1
        If Rt > ws2.Rows.Count Then Rt = .Row
    End With
    ws1.Range("Productivity").Copy
    With ws2.Cells(Rt, Ct)
        .PasteSpecial xlPasteAll
        .PasteSpecial xlPasteColumnWidths
        ' https://docs.microsoft.com/en-us/office/vba/api/excel.xlpastetype
    End With
    Application.CutCopyMode = False
End Sub

本质上,不需要命名目标范围,因为代码仅使用名称来查找目标单元格。实际上,如果其列中的总行数超过指定的行数,则该名称将变得无关紧要。就我的代码而言,目标范围的相关成员是其第一个单元格。如果您在项目中对该范围有其他用途,则可以使其动态化,自动扩展到该列的末尾,而不会影响此代码的功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将Excel工作表复制到Python中的另一个工作簿

将特定范围的excel单元格从一个工作表复制到另一个工作表

VBA工作表子在另一个工作表中创建命名范围

将范围从一个工作簿中的工作表复制到另一工作簿中的工作表

将粘贴VBA范围从一个工作表复制到另一个工作表中循环并转置数据

我如何在excel中将范围从一个工作簿复制到另一个工作簿而不必在VBA中命名呢?

另一个工作表的动态命名范围

将表中的命名范围转换为另一个命名范围

将Excel工作表从一个工作表复制到Python中的另一个工作表

如何为每个循环将范围复制到另一个工作表?

将数据行复制到Excel中的另一个工作表并添加列VBA

将具有NULL列的数据行复制到同一工作表中的另一个范围

在Excel VBA中命名对象,以便将其复制到另一个工作表/工作簿后就可以选择它

将一行中的列范围而不是整个行复制到另一张工作表?

将一个工作簿的多个工作表中的单元格复制到另一个工作簿中的多个工作表中

从组合框中的工作表复制到另一工作表的范围

需要根据第一库仑值将数据范围从一个Excel工作表复制到另一个工作表

Excel VBA-将范围从一个工作表粘贴复制到工作簿中的某些工作表之后的所有工作表

将工作表中的范围复制到另一个工作表 VBA

Excel:使用 VBA 将行复制到另一个工作表中的表格

将多个工作表中的范围复制到一个工作表中,在第一个空单元格中

将特定范围从一个工作表复制到另一个工作表

excel 将形状从一个工作表复制到另一个工作表

通过 VBA 将工作簿的命名范围数据复制到另一个工作簿

如何使用谷歌脚本将多个范围复制到另一个工作表中的完全相同的位置?

如何将一个文件夹中的多个 Excel 工作簿中除工作表 1 和工作表 2 之外的所有工作表复制到另一个工作簿中

如何将重复项复制到另一个工作表中?

谷歌工作表(脚本)将工作表复制到另一个电子表格并在目标 SS 中命名新工作表

下标超出范围,将一个工作簿中的范围复制到另一个工作簿