【问题标题】:Copy a static named range and paste it to a variable cell adress in another worksheet复制静态命名范围并将其粘贴到另一个工作表中的变量单元格地址
【发布时间】:2017-01-23 03:47:33
【问题描述】:

在工作表 A 中,我有一列仪表读数,其静态命名范围为“MeterData”。范围的第一行是读取仪表的日期 (mm/dd/yy)。其余行包含仪表读数。

紧邻该范围,在同一列中是月份,从 1 月到 12 月,我从下拉列表中选择。

在工作表 B 中,我有 12 列,标题分别是 1 月到 12 月。例如,如果在工作表 A 中选择的月份是二月,那么我希望复制命名范围,然后将其粘贴到工作表 B 中的二月标题下。工作表 B 中的第一个标题(一月)位于单元格 G4 中。

没有直接在工作表 B 中输入仪表读数是有充分理由的。

非常感谢任何有关 VBA 的帮助。我是一个真正的新手,并且正在慢慢地学习复制和改编简短的 VBA 解决方案,但实际上并不了解更多。感谢您的时间和知识。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    试试这个。我已经对代码进行了注释以解释它的作用,因此您可能会更好地根据您的要求对其进行调整。

    'Examine cell above 'MeterData' range - store in mth
    mth = Range("MeterData").Offset(-1, 0).Cells(1, 1).Text
    
    'Set destination column to 20 as default
    paste_column = 20
    'Skip on error as Match might not find the month(?) so will remain at 20
    On Error Resume Next
    'Re-set destination to column using Match to find occurence of 'mth' on row 4
    paste_column = WorksheetFunction.Match(mth, Sheets("WorksheetB").Range("4:4"), 0)
    
    Remove error skipping
    On error goto 0
    
    'Copy 'MeterData' range and Paste to WorksheetB, row 5, column found above.
    Range("MeterData").Copy Destination:=Sheets("WorksheetB").Cells(5, paste_column)
    

    编辑:现在复制/粘贴特殊值

    'Examine cell above 'MeterData' range - store in mth
    mth = Range("MeterData").Offset(-1, 0).Cells(1, 1).Text
    
    'Set destination column to 20 as default
    paste_column = 20
    'Skip on error as Match might not find the month(?) so will remain at 20
    On Error Resume Next
    'Re-set destination to column using Match to find occurence of 'mth' on row 4
    paste_column = WorksheetFunction.Match(mth, Sheets("WorksheetB").Range("4:4"), 0)
    
    'Remove error skipping
    On Error GoTo 0
    
    'Copy 'MeterData' range into buffer
    Range("MeterData").Copy
    
    'Paste to WorksheetB, row 5, column found above.
    Sheets("WorksheetB").Cells(5, paste_column).PasteSpecial Paste:=xlPasteValues
    
    'Remove highlighter identifying copied area
    Application.CutCopyMode = False
    

    【讨论】:

    • 感谢您的快速答复。代码结果如下: 1. 导航到目标地址工作正常,没有匹配时的默认列 20 也是如此。 2. 但是在粘贴时,目标单元格全部用 #REF 填充,而不是源数据。 3. 源格式也被粘贴,覆盖目标范围内的条件格式(每一个交替的行都是灰色阴影)。我希望我清楚这些问题并欢迎您提出建议。
    • 我已经编辑了我的原始答案,只提供结果数据而不是原始公式。
    • 完美!太感谢了。我花了很长时间试图破解这个问题,并且可以找到与问题描述完全匹配的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-18
    • 1970-01-01
    • 2016-08-15
    • 2019-12-16
    • 1970-01-01
    • 1970-01-01
    • 2019-12-04
    相关资源
    最近更新 更多