【问题标题】:if else statement at copying and pasting a cell value复制和粘贴单元格值时的 if else 语句
【发布时间】:2016-06-01 04:11:54
【问题描述】:

我有以下代码,它将从“数据”工作表中复制/粘贴一些列,并将其粘贴到我在主表中指定的名为“KomKo”的列中的下一个空列。

Dim copySheet As Worksheet
Dim pasteSheet As Worksheet

Set copySheet = Worksheets("data")
Set pasteSheet = Worksheets("KoMKo")
lRow = copySheet.Cells(copySheet.Rows.Count, 1).End(xlUp).Row

With copySheet.Range("BX2:BX" & lRow)
pasteSheet.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Resize(.Rows.Count, .Columns.Count) = .Value
End With

现在我想为另一列添加一个 if 条件;这应该说“如果工作表“数据”中的 U 列具有单元格值“8636”,那么这些值应该粘贴到工作表“KomKo”(粘贴表)中的 H 列;到下一行,因为我在“与"部分。

Else(如果 H 列中的值不是 8636)那么它应该将该列内的值粘贴到工作表“KomKo”(粘贴表)的 G 列,再次使用与上述相同的首选项。

我该怎么做?

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    所以,我在下面提出了一个建议,在循环中使用 if-then。我认为它接近你想要的......

    Sub try6()
    
    Dim ws As Worksheet
    Dim ws2 As Worksheet
    
    Dim x As Range
    
    Set ws = Worksheets("data")
    Set ws2 = Worksheets("KomKo")
    
    For Each x In ws.Range("C1:C100")
        If x.Value = 8636 Then
         ws2.Range("H:H").Value = ws.Cells(Rows.Count, "A").Value
             ElseIf x <> 8636 Then
            ws2.Range("G:G").Value = ws.Range(Rows.Count, "B").Value
          End If
        Next x
    
    End Sub
    

    测试它,执行需要一段时间。我会说,将动态范围设置为 A10000 之类的值,然后直接复制它,而无需测试是否存在要复制的范围内的值。

    您也可以使用 Select 方法来达到目的并复制选择 - 从个人经验来看,我使用它取得了不同程度的成功,并且我看到人们建议不要在这里使用它。

    这些是我的 .02,希望对您有所帮助!干杯。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-08
      • 1970-01-01
      • 1970-01-01
      • 2013-12-11
      • 2022-01-22
      • 2023-02-14
      • 1970-01-01
      相关资源
      最近更新 更多