[英]VBA Range and String confusion
认为我在范围和字符串之间的区别上有问题。 试图让它在范围内的单元格中搜索任何获胜者,然后吐出一个点值。
Sub it()
Dim Round1 As Range
Dim Round2 As Range
Dim lngCnt As Long
Dim Winner() As String
Dim pointSum As Double
ReDim Winner(1 To 4)
Winner(1) = "Mohler"
Winner(2) = "Scotter"
Winner(3) = "DKGAY"
Winner(4) = "Lassie"
Set Round1 = Range("L3,L11,L22,L32").Text
For Each Winner In Round1
lngCnt = lngCnt + 10
Winner(lngCnt) = pointSum.Value
Next
MsgBox pointSum.Value
End Sub
您将需要两个循环:
Sub it()
Dim Round1 As Range
Dim Round2 As Range
Dim lngCnt As Long
Dim Winner() As String
Dim pointSum As Double
Dim rng As Range
Dim i As Long
ReDim Winner(1 To 4)
Winner(1) = "Mohler"
Winner(2) = "Scotter"
Winner(3) = "DKGAY"
Winner(4) = "Lassie"
Set Round1 = Range("L3,L11,L22,L32")
For Each rng In Round1
For i = 1 To UBound(Winner)
If rng.Value = Winner(i) Then
pointSum = pointSum + 10
Exit For
End If
Next i
Next rng
MsgBox pointSum.Value
End Sub
第一个循环通过范围,第二个循环通过字符串数组。 当找到相等位置时,将增加10。
只有一个循环的解决方案,我不在电脑旁,所以无法测试或使用代码标签对其进行格式化
Sub Main
Dim Round1 As Range, rng As Range
Dim Winners As Variant
Dim pointSum As Double
Winners =Array ("Mohler","Scotter","DKGAY", "Lassie")
Set Round1 = Range("L3,L11,L22,L32")
WinnersStr = "-" & Join (Winners, "-") & "-"
For Each rng In Round1
If Instr(WinnersStr, "-" & rng.Value & "-") > 0 Then pointSum = pointSum + 10
Next rng
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.