【问题标题】:VBA to Copy from Named Range based on Condition to Paste Vlaues in another worksheetVBA根据条件从命名范围复制以将值粘贴到另一个工作表中
【发布时间】:2017-08-14 23:30:16
【问题描述】:

我有一个命名范围“数量”(工作表 Sheet1,单元格 I21:L28),其中包含报告“L”列中数量的公式。我想在 L 列中搜索 >0 的值,然后将这些值(连同 K 列中的数据)粘贴到另一个工作表(Sheet10)中。 以下代码很接近,但它粘贴了公式而不是值。 请帮忙。

Sub CopyOnCondition()
     Dim sh1 As Worksheet, sh2 As Worksheet, c As Range
     Set sh1 = Sheet1 'Edit sheet name
     Set sh2 = Sheet10 'Edit sheet name
     With sh1
         For Each c In .Range("L18:L24")
             If c.Value > 0 Then
                 c.Copy sh2.Cells(Rows.Count, 1).End(xlUp)(2, 1)
             End If
         Next
     End With
End Sub

【问题讨论】:

    标签: excel conditional copy-paste vba


    【解决方案1】:

    试试这个

    Sub CopyOnCondition()
         Dim sh1 As Worksheet, sh2 As Worksheet, c As Range
         Set sh1 = Sheet1 'Edit sheet name
         Set sh2 = Sheet10 'Edit sheet name
         With sh1
             For Each c In .Range("L18:L24")
                 If c.Value > 0 Then
                     sh2.Cells(Rows.Count, 1).End(xlUp)(2, 1).resize(,2).value=c.offset(,-1).resize(,2).value
                 End If
             Next
         End With
    End Sub
    

    【讨论】:

    • 您的sh2.Cells(Rows.Count, 1) 不完全合格,Rows.Count 之前没有sh2 意味着它正在寻找ActiveSheet。此外,PO 想要从 K:L 列复制值,您的代码只从 K 列复制值。
    • 这也有效。我无法分辨结果的差异。谢谢你们。
    【解决方案2】:

    当 L 列中的值 > 0 时,下面的代码将仅从 K:L 列复制值。

    Sub CopyOnCondition()
    
         Dim sh1 As Worksheet, sh2 As Worksheet, c As Range
         Set sh1 = Sheet1 'Edit sheet name
         Set sh2 = Sheet10 'Edit sheet name
    
         With sh1
             For Each c In .Range("L18:L24")
                 If c.Value > 0 Then
                     c.Offset(, -1).Resize(1, 2).Copy '<-- copy column K with L
                     ' paste values to the first empty row in Column A of sh2
                     sh2.Cells(sh2.Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial xlValues
                 End If
             Next c
         End With
    
    End Sub
    

    【讨论】:

    • 太棒了!奇迹般有效。谢谢你
    猜你喜欢
    • 1970-01-01
    • 2020-04-09
    • 2019-02-06
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-16
    相关资源
    最近更新 更多