【问题标题】:Copy and paste to variable worksheet and range复制并粘贴到可变工作表和范围
【发布时间】:2022-11-27 07:46:08
【问题描述】:

我想将固定工作表(“c4:c178”)中的范围复制并粘贴到可变工作表中。

我有两个下拉列表,一个包含所有工作表名称的列表,另一个包含列号。

我希望用户可以在下拉列表中选择工作表名称和列引用,然后单击宏按钮将范围复制并粘贴到该引用。

Sub CopyPaste()
    Dim Sheetname As String
    Sheetname = ActiveSheet.Range("i3").Value
    Dim Col As Long
    Col = ActiveSheet.Range("i4").Value
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Tracking Only")
    Dim rng As Range
    Set rng = ActiveSheet.Range("c4:C178")
    With rng
        ws.Cells(4, Col).Resize(.Rows.Count, .Columns.Count).Value = .Value
    End With
End Sub

我收到

“运行时错误‘1004’:应用程序定义或对象定义错误”

它突出显示了 ws.cells 代码。

【问题讨论】:

  • 是的,这是可能的。您是否研究过它和/或尝试过任何代码?
  • 我做到了。我能够复制并粘贴到固定工作表上的固定范围内,但无法弄清楚如何根据单元格的内容制作范围变量。我猜这就像知道正确的术语一样简单。如果存在与此类似的问题,我深表歉意,但搜索“VBA 复制粘贴变量输入”数小时,我发现的所有内容都是关于选择变量范围的代码。范围是固定的,输出是可变的
  • 我添加了当前代码,但老实说已经尝试了几次迭代,所有迭代都产生了几乎相同的结果。非常感谢你的帮助。如果我能解决这个问题,我们的一位护士就会节省大量时间!
  • 数据应该粘贴在哪一行? (列有规范,行没有)
  • 数据将始终粘贴到第 4 行

标签: excel vba copy-paste


【解决方案1】:

将流程分解为多个步骤,使用变量存储下拉值,并将源范围的 .Value 分配给目标范围。

With ThisWorkbook.Worksheets("Tracking Only")
    Dim sheetName As String
    sheetName = .Range("I3").Value 

    Dim col As Long
    col = .Range("I4").Value
    
    Dim rng As Range
    Set rng = .Range("C4:C178")
End With

Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(sheetName)

With rng
    ws.Cells(4, col).Resize(.Rows.Count, .Columns.Count).Value = .Value
End With

【讨论】:

  • 本,非常感谢你花时间帮我解决这个问题。我想我搞砸了重命名部分。如何重命名下拉菜单?第一个下拉列表在单元格 i3 中,第二个在 I4 中。很抱歉让你把它分解成 barney style Dim Sheetname As String Sheetname = ActiveSheet.Range("i3").Value Dim Col As Long Col = ActiveSheet.Range("i4").Value Dim ws As Worksheet Set ws = ThisWorkbook。工作表(“仅跟踪”)将 rng 调暗为范围设置 rng = ActiveSheet.Range(“c4:C178”)与 rng ws.Cells(4,Col).Resize(.Rows.Count,.Columns.Count).Value = .Value 结束于
猜你喜欢
  • 1970-01-01
  • 2012-09-02
  • 1970-01-01
  • 2018-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-14
相关资源
最近更新 更多