Vba 计算数值并根据案例粘贴到另一张表中
我有一张“BW”和另一张“结果”。“工作表结果”有一个表格,表格A列中有工作周编号 我想在工作表“result”中查找weeknumber,如果weeknumber与“AX”列中工作表“BW”中的weeknumber相同,那么我想计算“T”列和“u”列中工作表“BW”中的“1”数 但问题是我有两个例子来计算T列和U列中的“1”Vba 计算数值并根据案例粘贴到另一张表中,vba,excel,Vba,Excel,我有一张“BW”和另一张“结果”。“工作表结果”有一个表格,表格A列中有工作周编号 我想在工作表“result”中查找weeknumber,如果weeknumber与“AX”列中工作表“BW”中的weeknumber相同,那么我想计算“T”列和“u”列中工作表“BW”中的“1”数 但问题是我有两个例子来计算T列和U列中的“1” 列AA不应等于null Z列应包含“Ontime” 如果这两种情况都满足,那么我想研究T列和U列,不计算列中的1 我试过密码。但情况并不令人满意。任何线索都会有帮助 Su
Sub results()
Dim i As Integer, j As Integer, cntT As Integer, cntu As Integer, ws As Worksheet
Set ws = Sheets("Result")
Sheets("BW").Select
For i = 2 To WorksheetFunction.CountA(ws.Columns(1))
cntT = 0
cntu = 0
If ws.Range("A" & i) = Val(Format(Now, "ww")) Then Exit For
Next i
For j = 5 To WorksheetFunction.CountA(Columns(50))
If ws.Range("AA" & i) <> "" And ws.Range("Z" & i) = "PSW Ontime" Then
ElseIf ws.Range("A" & i) = Range("AX" & j) And Range("T" & j) = 1 Then cntT = cntT + 1
ElseIf ws.Range("A" & i) = Range("AX" & j) And Range("U" & j) = 1 Then cntu = cntu + 1
Next j
If cntT <> 0 Then ws.Range("B" & i) = cntT
If cntu <> 0 Then ws.Range("C" & i) = cntu
If cntT + cntu <> 0 Then
ws.Range("D" & i) = cntT + cntu
ws.Range("E" & i) = cntT / (cntT + cntu)
ws.Range("F" & i) = cntu / (cntT + cntu)
End If
ws.Range("E" & i & ":F" & i).NumberFormat = "0%"
End If
End Sub
子结果()
Dim i为整数,j为整数,cntT为整数,cntu为整数,ws为工作表
设置ws=工作表(“结果”)
工作表(“BW”)。选择
对于i=2的工作表function.CountA(ws.Columns(1))
cntT=0
cntu=0
如果ws.Range(“A”&i)=Val(格式(现在为“ww”)),则退出
接下来我
对于工作表function.CountA中的j=5(列(50))
如果ws.Range(“AA”&i)”和ws.Range(“Z”&i)=“PSW Ontime”,则
如果ws.Range(“A”和i)=Range(“AX”和j)和Range(“T”和j)=1,则cntT=cntT+1
ElseIf ws.Range(“A”&i)=Range(“AX”&j)和Range(“U”&j)=1然后cntu=cntu+1
下一个j
如果cntT为0,则ws.Range(“B”&i)=cntT
如果cntu为0,则ws.Range(“C”&i)=cntu
如果cntT+cntu为0,则
ws.Range(“D”和i)=cntT+cntu
ws.Range(“E”和i)=cntT/(cntT+cntu)
ws.Range(“F”和i)=cntu/(cntT+cntu)
如果结束
ws.Range(“E”&i&“:F”&i).NumberFormat=“0%”
如果结束
端接头
有人能帮助我,我如何在我的代码中介绍这个案例 将此ws.Range(“Z”&i)=“PSW Ontime”更改为Ucase(ws.Range(“Z”&i))=Ucase(“Ontime”)检查这是否有助于您或将ws.Range(“Z”&i)=“PSW Ontime”替换为Instr(Ucase(ws.Range(“Z”&i)),Ucase(“PSW Ontime”)=true根据您的逻辑,您正在错误地使用If和Else Ifproblem@nishitdey你能给我看一个如何使用的样本吗?@danieltakeshi我该怎么做,那么怎么做?有样本吗?