excel - 这是我的逻辑还是我写的语法错误? (if else 语法)

标签 excel vba

我想使用循环( for )和条件( if elseif else )将数据从一个工作表复制到另一个工作表。条件:

  • 如果 wsCopy 中的 E10 列 = 空,则代码将循环...
  • 条件:如果 wsCopy 中的 B10 列 = wsDestI 中 Gs 列中的值
  • 然后将 Gs wsDestI 列中的值复制到 M wsDest
  • 否则,如果 B10 列中的值 wsCopy = 空
  • 然后做条件。
  • 否则代码将从 wsCopy 复制到 wsDest

  • 但是 Else 子句中的代码会触发错误:

    Run-time error '1004'



    我试图激活工作表,但我仍然卡住了。谁能解释为什么我的源代码不起作用?是我的逻辑还是语法不正确?
     For i = 1 To lCopyLastRow
        If IsEmpty(wsCopy.Range("E" & 9 + i).Value) = True Then
            For s = 4 To b
                If (wsCopy.Range("B" & 9 + i).Value = wsDestI.Range("G" & s).Value) Then
                    wsDestI.Range("C" & s).copy wsDest.Range("M").End(xlUp).Offset(1, 0)
                    wsDestI.Range("G" & s).copy wsDest.Range("S").End(xlUp).Offset(1, 0)
                    wsDestI.Range("M" & s).copy wsDest.Range("P").End(xlUp).Offset(1, 0)
                End If
            Next s
        ElseIf IsEmpty(wsCopy.Range("B" & 9 + i).Value) = True Then
                wsCopy.Range("E" & i + 9).copy wsDest.Range("M").End(xlUp).Offset(1, 0)
                wsCopy.Range("K" & 9 + i).copy wsDest.Range("P").End(xlUp).Offset(1, 0)
                wsDest.Range("S").End(xlUp).Offset(1, 0) = "0"
        Else:
        wsCopy.Activate
        wsDest.Activate
        'this below line is error and I don't know why its error
        wsCopy.Range("E" & 9 + i).copy wsDest.Range("M").End(xlUp).Offset(1, 0)
        wsCopy.Range("B" & 9 + i).copy wsDest.Range("S").End(xlUp).Offset(1, 0)
        wsCopy.Range("K" & 9 + i).copy wsDest.Range("P").End(xlUp).Offset(1, 0)
        End If
    
    Next i
    

    最佳答案

    您实际上会在每行使用 wsDest.Range 得到这个错误。因为您没有为 .End(xlUp) 定义行号开始,因此错误 1004 .

    如果您要查找指定列中的最后一行,请尝试添加 & Rows.Count到您要指定的范围。

    wsDest.Range("M" & Rows.Count).End(xlUp).Offset(1, 0)
    

    关于excel - 这是我的逻辑还是我写的语法错误? (if else 语法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54293464/

    相关文章:

    vba - 将数字字符转换为字母字符

    excel - 如何区分 Excel 中两个字符串之间的差异?

    excel - 根据当前日期在单元格中输入内容

    excel - 删除名称中包含单词 "sheet"的任何工作表而不发出警告

    php - Excel php图表生成

    excel - VBA Excel - 删除具有特定关键字的行上方的 2 行

    excel - 删除空白行直到 LastRow 变量

    excel - Countifs 没有返回正确的值

    excel - 我可以在不使用中键单击的情况下使 Excel 平滑滚动吗?

    excel - Python pandas,如何读取没有列标签的Excel文件,然后插入列标签?