Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Excel VBA自动化任何项目的数量 选项显式 子自动机数量() 如果工作表(“Sheet3”).Range(“E4”,Range(“E4”).End(xlDown))=“Sheet1”,则 Dim val1作为字符串 Dim val2作为字符串 设置工作表(“表3”)。范围(“B4”,范围(“B4”)。结束(xlDown))=val1 设置工作表(“表1”)。范围(“A4:B4”,范围(“A4:B4”)。结束(xlDown))=val2 将结果设置为整数 结果=StrComp(val1、val2、vbTextCompare) 如果结果为真,并且工作表(“表3”).Range(“C4”,Range(“C4”).End(xlDown))“”中的“工作表范围”为“C4”,则 工作表(“表1”).Range(“C4”,Range(“C4”).End(xlDown)).Value=工作表(“表1”).Range(“C4”,Range(“C4”).End(xlDown))_ 值+工作表(“表3”)。范围(“C4”,范围(“C4”)。结束(xlDown))。值 其他的 如果结果为真,并且工作表(“Sheet3”).Range(“D4”,Range(“D4”).End(xlDown))”,则 工作表(“表1”)。范围(“D4”,范围(“D4”)。结束(xlDown))。值=工作表(“表1”)。范围(“D4”,范围(“D4”)。结束(xlDown))_ 值+工作表(“表3”)。范围(“D4”,范围(“D4”)。结束(xlDown))。值 如果结束 其他工作表(“表3”)。范围(“E4”,范围(“E4”)。结束(xlDown))=然后是“表2” Dim val1作为字符串 Dim val2作为字符串 设置工作表(“表3”)。范围(“B4”,范围(“D4”)。结束(xlDown))=val1 设置工作表(“表2”)。范围(“A4:B4”,范围(“A4:B4”)。结束(xlDown))=val2 将结果设置为整数 结果=StrComp(val1、val2、vbTextCompare) 如果结果为真,并且工作表(“表3”).Range(“C4”,Range(“C4”).End(xlDown))“”中的“工作表范围”为“C4”,则 工作表(“Sheet2”).Range(“C4”,Range(“C4”).End(xlDown)).Value=工作表(“Sheet2”).Range(“C4”,Range(“C4”).End(xlDown))_ 值+工作表(“表3”)。范围(“C4”,范围(“C4”)。结束(xlDown))。值 其他的 如果结果为真,并且工作表(“Sheet3”).Range(“D4”,Range(“D4”).End(xlDown))”,则 工作表(“表2”)。范围(“D4”,范围(“D4”)。结束(xlDown))。值=工作表(“表2”)。范围(“D4”,范围(“D4”)。结束(xlDown))_ 值+工作表(“表3”)。范围(“D4”,范围(“D4”)。结束(xlDown))。值 如果结束 其他的 出口接头 如果结束 端接头_Excel_Vba - Fatal编程技术网

使用Excel VBA自动化任何项目的数量 选项显式 子自动机数量() 如果工作表(“Sheet3”).Range(“E4”,Range(“E4”).End(xlDown))=“Sheet1”,则 Dim val1作为字符串 Dim val2作为字符串 设置工作表(“表3”)。范围(“B4”,范围(“B4”)。结束(xlDown))=val1 设置工作表(“表1”)。范围(“A4:B4”,范围(“A4:B4”)。结束(xlDown))=val2 将结果设置为整数 结果=StrComp(val1、val2、vbTextCompare) 如果结果为真,并且工作表(“表3”).Range(“C4”,Range(“C4”).End(xlDown))“”中的“工作表范围”为“C4”,则 工作表(“表1”).Range(“C4”,Range(“C4”).End(xlDown)).Value=工作表(“表1”).Range(“C4”,Range(“C4”).End(xlDown))_ 值+工作表(“表3”)。范围(“C4”,范围(“C4”)。结束(xlDown))。值 其他的 如果结果为真,并且工作表(“Sheet3”).Range(“D4”,Range(“D4”).End(xlDown))”,则 工作表(“表1”)。范围(“D4”,范围(“D4”)。结束(xlDown))。值=工作表(“表1”)。范围(“D4”,范围(“D4”)。结束(xlDown))_ 值+工作表(“表3”)。范围(“D4”,范围(“D4”)。结束(xlDown))。值 如果结束 其他工作表(“表3”)。范围(“E4”,范围(“E4”)。结束(xlDown))=然后是“表2” Dim val1作为字符串 Dim val2作为字符串 设置工作表(“表3”)。范围(“B4”,范围(“D4”)。结束(xlDown))=val1 设置工作表(“表2”)。范围(“A4:B4”,范围(“A4:B4”)。结束(xlDown))=val2 将结果设置为整数 结果=StrComp(val1、val2、vbTextCompare) 如果结果为真,并且工作表(“表3”).Range(“C4”,Range(“C4”).End(xlDown))“”中的“工作表范围”为“C4”,则 工作表(“Sheet2”).Range(“C4”,Range(“C4”).End(xlDown)).Value=工作表(“Sheet2”).Range(“C4”,Range(“C4”).End(xlDown))_ 值+工作表(“表3”)。范围(“C4”,范围(“C4”)。结束(xlDown))。值 其他的 如果结果为真,并且工作表(“Sheet3”).Range(“D4”,Range(“D4”).End(xlDown))”,则 工作表(“表2”)。范围(“D4”,范围(“D4”)。结束(xlDown))。值=工作表(“表2”)。范围(“D4”,范围(“D4”)。结束(xlDown))_ 值+工作表(“表3”)。范围(“D4”,范围(“D4”)。结束(xlDown))。值 如果结束 其他的 出口接头 如果结束 端接头

使用Excel VBA自动化任何项目的数量 选项显式 子自动机数量() 如果工作表(“Sheet3”).Range(“E4”,Range(“E4”).End(xlDown))=“Sheet1”,则 Dim val1作为字符串 Dim val2作为字符串 设置工作表(“表3”)。范围(“B4”,范围(“B4”)。结束(xlDown))=val1 设置工作表(“表1”)。范围(“A4:B4”,范围(“A4:B4”)。结束(xlDown))=val2 将结果设置为整数 结果=StrComp(val1、val2、vbTextCompare) 如果结果为真,并且工作表(“表3”).Range(“C4”,Range(“C4”).End(xlDown))“”中的“工作表范围”为“C4”,则 工作表(“表1”).Range(“C4”,Range(“C4”).End(xlDown)).Value=工作表(“表1”).Range(“C4”,Range(“C4”).End(xlDown))_ 值+工作表(“表3”)。范围(“C4”,范围(“C4”)。结束(xlDown))。值 其他的 如果结果为真,并且工作表(“Sheet3”).Range(“D4”,Range(“D4”).End(xlDown))”,则 工作表(“表1”)。范围(“D4”,范围(“D4”)。结束(xlDown))。值=工作表(“表1”)。范围(“D4”,范围(“D4”)。结束(xlDown))_ 值+工作表(“表3”)。范围(“D4”,范围(“D4”)。结束(xlDown))。值 如果结束 其他工作表(“表3”)。范围(“E4”,范围(“E4”)。结束(xlDown))=然后是“表2” Dim val1作为字符串 Dim val2作为字符串 设置工作表(“表3”)。范围(“B4”,范围(“D4”)。结束(xlDown))=val1 设置工作表(“表2”)。范围(“A4:B4”,范围(“A4:B4”)。结束(xlDown))=val2 将结果设置为整数 结果=StrComp(val1、val2、vbTextCompare) 如果结果为真,并且工作表(“表3”).Range(“C4”,Range(“C4”).End(xlDown))“”中的“工作表范围”为“C4”,则 工作表(“Sheet2”).Range(“C4”,Range(“C4”).End(xlDown)).Value=工作表(“Sheet2”).Range(“C4”,Range(“C4”).End(xlDown))_ 值+工作表(“表3”)。范围(“C4”,范围(“C4”)。结束(xlDown))。值 其他的 如果结果为真,并且工作表(“Sheet3”).Range(“D4”,Range(“D4”).End(xlDown))”,则 工作表(“表2”)。范围(“D4”,范围(“D4”)。结束(xlDown))。值=工作表(“表2”)。范围(“D4”,范围(“D4”)。结束(xlDown))_ 值+工作表(“表3”)。范围(“D4”,范围(“D4”)。结束(xlDown))。值 如果结束 其他的 出口接头 如果结束 端接头,excel,vba,Excel,Vba,正如@BigBen在评论中所说的,这取决于你对If…Else…If的使用两次。第一项修正是: Option Explicit Sub AutomateQty() If Worksheets("Sheet3").Range("E4", Range("E4").End(xlDown)) = "Sheet1" Then Dim val1 As String Dim val2 As String Set Worksheets("Sheet3").Range("B4", Range(

正如@BigBen在评论中所说的,这取决于你对
If…Else…If
的使用两次。第一项修正是:

Option Explicit

Sub AutomateQty()
If Worksheets("Sheet3").Range("E4", Range("E4").End(xlDown)) = "Sheet1" Then

Dim val1 As String
    Dim val2 As String

    Set Worksheets("Sheet3").Range("B4", Range("B4").End(xlDown)) = val1
    Set Worksheets("Sheet1").Range("A4:B4", Range("A4:B4").End(xlDown)) = val2

    Dim Result As Integer

    Result = StrComp(val1, val2, vbTextCompare)

    If Result = True And Worksheets("Sheet3").Range("C4", Range("C4").End(xlDown)) <> "" Then
        Worksheets("Sheet1").Range("C4", Range("C4").End(xlDown)).Value = Worksheets("Sheet1").Range("C4", Range("C4").End(xlDown)). _
        Value + Worksheets("Sheet3").Range("C4", Range("C4").End(xlDown)).Value
    Else
    If Result = True And Worksheets("Sheet3").Range("D4", Range("D4").End(xlDown)) <> "" Then
        Worksheets("Sheet1").Range("D4", Range("D4").End(xlDown)).Value = Worksheets("Sheet1").Range("D4", Range("D4").End(xlDown)). _
        Value + Worksheets("Sheet3").Range("D4", Range("D4").End(xlDown)).Value
    End If

ElseIf Worksheets("Sheet3").Range("E4", Range("E4").End(xlDown)) = "Sheet2" Then

    Dim val1 As String
    Dim val2 As String

    Set Worksheets("Sheet3").Range("B4", Range("D4").End(xlDown)) = val1
    Set Worksheets("Sheet2").Range("A4:B4", Range("A4:B4").End(xlDown)) = val2

    Dim Result As Integer

    Result = StrComp(val1, val2, vbTextCompare)

    If Result = True And Worksheets("Sheet3").Range("C4", Range("C4").End(xlDown)) <> "" Then
        Worksheets("Sheet2").Range("C4", Range("C4").End(xlDown)).Value = Worksheets("Sheet2").Range("C4", Range("C4").End(xlDown)). _
        Value + Worksheets("Sheet3").Range("C4", Range("C4").End(xlDown)).Value
    Else
    If Result = True And Worksheets("Sheet3").Range("D4", Range("D4").End(xlDown)) <> "" Then
        Worksheets("Sheet2").Range("D4", Range("D4").End(xlDown)).Value = Worksheets("Sheet2").Range("D4", Range("D4").End(xlDown)). _
        Value + Worksheets("Sheet3").Range("D4", Range("D4").End(xlDown)).Value
    End If

Else
Exit Sub
End If

End Sub
此外,您在此子项中声明了两次
val1
val2
result
,只需声明一次即可


关于,

请检查我的VBA代码,它显示了elseif语句的编译错误。我希望我能尽快找到解决办法。谢谢你,你需要适当的,以及阅读。您不能执行
If…Else…ElseIf
。谢谢BigBen,但我刚刚使用了嵌套的If-then-ElseIf语句,如果您更正它,我们将不胜感激。谢谢。不,你没有。。。请修复缩进并再次检查。
如果工作表(“Sheet3”).Range(“E4”,Range(“E4”).End(xlDown))=“Sheet1”
范围的值将是一个二维数组,而不是单个值。谢谢@Applecore,但是如何编写代码,如果您只是通过编写更正的代码来更正我,将不胜感激,顺便说一句,首先我在sub中声明了一次,然后我想我必须更改范围的值,这就是为什么我声明了两次。我发布的两个代码片段是正确的版本-您需要将它们粘贴到您自己的代码中。为我的错误道歉@Applecore再次感谢我会检查,然后回复给您。您的答案是仍然存在问题,原因是Tim。很可能OP想要一个循环。是的,但一次解决一个问题:)
If Result = True And Worksheets("Sheet3").Range("C4", Range("C4").End(xlDown)) <> "" Then
    Worksheets("Sheet1").Range("C4", Range("C4").End(xlDown)).Value = Worksheets("Sheet1").Range("C4", Range("C4").End(xlDown)). _
    Value + Worksheets("Sheet3").Range("C4", Range("C4").End(xlDown)).Value
ElseIf Result = True And Worksheets("Sheet3").Range("D4", Range("D4").End(xlDown)) <> "" Then
    Worksheets("Sheet1").Range("D4", Range("D4").End(xlDown)).Value = Worksheets("Sheet1").Range("D4", Range("D4").End(xlDown)). _
    Value + Worksheets("Sheet3").Range("D4", Range("D4").End(xlDown)).Value
End If
If Result = True And Worksheets("Sheet3").Range("C4", Range("C4").End(xlDown)) <> "" Then
    Worksheets("Sheet2").Range("C4", Range("C4").End(xlDown)).Value = Worksheets("Sheet2").Range("C4", Range("C4").End(xlDown)). _
    Value + Worksheets("Sheet3").Range("C4", Range("C4").End(xlDown)).Value
ElseIf Result = True And Worksheets("Sheet3").Range("D4", Range("D4").End(xlDown)) <> "" Then
    Worksheets("Sheet2").Range("D4", Range("D4").End(xlDown)).Value = Worksheets("Sheet2").Range("D4", Range("D4").End(xlDown)). _
    Value + Worksheets("Sheet3").Range("D4", Range("D4").End(xlDown)).Value
End If