Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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 根据同一行中另一个单元格的值计算相应单元格中的单元格值_Excel_Vba - Fatal编程技术网

Excel 根据同一行中另一个单元格的值计算相应单元格中的单元格值

Excel 根据同一行中另一个单元格的值计算相应单元格中的单元格值,excel,vba,Excel,Vba,我有一个程序,它根据一个值计算单元格的数量 例如,如果E=“75”列中有一个单元格值,则添加到“空气计数”,否则,如果E=“76”列中有一个单元格值,则添加到“道路计数” 在我的数据集中,S列中有一个对应的单元格,其中包含项目数。我想根据E列中的值对这些项目进行计数。例如,如果E列中的单元格=“75”,则检查S列中的相应单元格,并将其添加到“空运项目计数”中 我想我有点困惑,在哪里添加这个。我试图添加它,但我没有得到正确的,所以我只是把它注释掉了 这是我的密码: Sub ParseData()

我有一个程序,它根据一个值计算单元格的数量

例如,如果E=“75”列中有一个单元格值,则添加到“空气计数”,否则,如果E=“76”列中有一个单元格值,则添加到“道路计数”

在我的数据集中,S列中有一个对应的单元格,其中包含项目数。我想根据E列中的值对这些项目进行计数。例如,如果E列中的单元格=“75”,则检查S列中的相应单元格,并将其添加到“空运项目计数”中

我想我有点困惑,在哪里添加这个。我试图添加它,但我没有得到正确的,所以我只是把它注释掉了

这是我的密码:

Sub ParseData()

Dim airConCount As Integer, airItemCount As Integer, roadConCount As Integer, roadItemCount As Integer, totalConCount As Integer, _
totalItemCount As Integer

'Find last value in row
Dim LastSVS As Integer
Dim LastRowITEMS As Integer


LastRowSVS = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row
'LastRowITEMS = ActiveSheet.Cells(Rows.Count, 19).End(xlUp).Row

Dim cel As Range
Dim cel2 As Range
Dim airCounter As Integer
Dim roadCounter As Integer

airCounter = airCounter + 1
roadCounter = roadCounter + 1

'CONSIGNMENT NOTE COUNT
    For Each cel In Range("E2:E" & LastRowSVS)

        If cel.Value = "75" Or cel.Value = "48N" Or cel.Value = "15N" Or cel.Value = "29" Or cel.Value = "701" _
        Or cel.Value = "15D" Or cel.Value = "EP3" Or cel.Value = "X12" Or cel.Value = "753" Or cel.Value = "EP5" _
        Or cel.Value = "X12" Or cel.Value = "753" Or cel.Value = "EP5" Or cel.Value = "1" Or cel.Value = "4" _
        Or cel.Value = "INT" Or cel.Value = "17B" Or cel.Value = "73" Then

        airCounter = airCounter + 1

        Set cel2 = Range("S2:S" & airCounter)


        airConCount = airConCount + 1
        'airItemCount = airItemCount + cel2.Item(19)



        ElseIf cel.Value = "76" Then

        roadConCount = roadConCount + 1
        Set cel2 = Range("J2:J" & roadCounter)
        'roadItemCount = roadItemCount + cel2.Item(19)


        End If

    Next cel
这是我的数据集的截图。

如果物品与服务中的属性匹配,我希望对其进行计数。
因此,如果服务为75,则计算相应行中的所有项目

我想这正是你需要它做的

它循环遍历
E2:E
范围内的所有单元格,并根据值是否为76,将同一行S列中单元格的值添加到
roadItemCount
。如果该值是其他值,则执行相同的逻辑,但将该值添加到
airtItemCount

我已经反转了if/else逻辑,所以如果您真的需要在列E中选择那些特定的值,您可以使用您的逻辑

Sub-ParseData()
Dim airConCount为整数,airItemCount为整数,roadConCount为整数,roadItemCount为整数,totalConCount为整数_
totalItemCount为整数
'查找行中的最后一个值
将LastSVS设置为整数
将LastRowITEMS设置为整数
LastRowSVS=ActiveSheet.Cells(Rows.Count,5).End(xlUp).Row
LastRowITEMS=ActiveSheet.Cells(Rows.Count,19).End(xlUp).Row
暗淡的cel As范围
将空气计数器设置为整数
将道路计数器设置为整数
空气计数器=空气计数器+1
道路计数器=道路计数器+1
“托运单计数
对于范围内的每个cel(“E2:E”和LastRowSVS)
如果cel.Value=“76”,则
roadConCount=roadConCount+1
roadItemCount=roadItemCount+ActiveSheet.Cells(cel.Row,19).Value
'MsgBox(“roadConCount:&roadConCount”)
'MsgBox(“roadItemCount:&roadItemCount”)
其他的
airConCount=airConCount+1
airItemCount=airItemCount+ActiveSheet.Cells(cel.Row,19).Value
'MsgBox(“airConCount:&airConCount”)
'MsgBox(“airItemCount:&airItemCount”)
如果结束
下一个细胞
MsgBox(“airItemCount:&airItemCount”)
MsgBox(“roadItemCount:&roadItemCount”)
端接头

您能解释一下您当前的代码有哪些地方不能正常工作吗?您是否遇到了错误或意外的结果?如果是后者,你能描述一下你的期望和实际结果吗。我要注意的一点是,您正在使用
cel2.Item(I,10)
,但我没有看到您在任何地方声明或为
I
赋值。我很抱歉。我得到的错误代码
对象不支持此属性或方法
我遇到的问题是不知道将语句添加到“Air Item Count”的何处,也不知道要使用的正确语法或如何构造它。您在哪一行得到该错误?我只是根据您给出的代码运行代码,它不会出错。我不认为您在
airtItemCount=airtItemCount+cel2.Item(I,10)
行中指定了正确的单元格,但是如果不更好地了解您的数据集,很难说您没有收到错误,因为我已经注释掉了给出错误的代码吗?关于我的数据集,您还需要哪些信息,我将提供这些信息。我正在尝试指定列“S”并计算该单元格中的值。我认为这应该是第10行,我认为“I”为每个循环指定了其中的值。您最好添加一个反映您的问题的示例数据的屏幕截图,然后通过推理向我们显示预期的输出。我认为有一个更简单的方法可以做到这一点,但需要样本数据来确认。这是完美的,正是我所需要的。非常感谢你。