首页 > 解决方案 > 对于 sheet1.range 中的每个单元格,如果单元格包含值(即 %)粘贴到工作表 2 中的下一个空单元格中 c 列

问题描述

请帮忙!我正在尝试创建一个宏来遍历一个范围并基于标准(单元格值),将该单元格和左侧的单元格复制到下一个空行的列中的工作表 2。

我试图合并我找到的几个不同的代码,但我无法解决。我不认为这很难,但对我来说很难。

到目前为止我的代码:

Sub Ado()
    Dim Last As Long
    Dim sht1 As Worksheet, sht2 As Worksheet
    Dim i As Long

    Set sht1 = Worksheets("Target Calculator")
    Set sht2 = Worksheets("Exceptions")
    Last = 61

    With sht1
        For i = 5 To Last Step 1
            If (Cells(i, "J").Text) = "26.00%" Then
               Cells(i, "J").Value = sht2.Cells(i, "c").Value
             End If
        Next i
    End With
End Sub

我没有接受过任何正式的 VBA 培训,我一直在尝试通过在这个网站上构建和学习来学习。

非常感谢

标签: vbaexcel

解决方案


可能类似于以下内容,假设您的单元格格式为百分比,但实际找到的值为.26.

Option Explicit
Public Sub Ado()
    Dim Last As Long
    Dim sht1 As Worksheet, sht2 As Worksheet
    Dim i As Long, unionRng As Range

    Set sht1 = Worksheets("Target Calculator")
    Set sht2 = Worksheets("Exceptions")
    Last = 61

    With sht1
        For i = 5 To Last
            If (.Cells(i, "J").Value) = 0.26 Then
               If Not unionRng Is Nothing Then
                   Set unionRng = Union(unionRng, .Cells(i, "J").Offset(, -1).Resize(1, 2))
               Else
                   Set unionRng = .Cells(i, "J").Offset(, -1).Resize(1, 2)
             End If
            End If
        Next i
    End With
    If Not unionRng Is Nothing Then unionRng.Copy sht2.Range("C" & sht2.Cells(sht2.Rows.Count, "C").End(xlUp).Row)
End Sub

推荐阅读