VBA 根据条件从命名范围复制到另一个工作表中的粘贴值
VBA to Copy from Named Range based on Condition to Paste Vlaues in another worksheet
我有一个命名范围 "Quantities"(工作表 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
试试这个
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
当 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
我有一个命名范围 "Quantities"(工作表 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
试试这个
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
当 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