我在Stack网站上发布了一个问题,以提供一些代码帮助,因为它无法完全按照我想要的方式工作。有人在下面的建议中做出了回应,但是我不知道要对代码进行哪些更改,因为我不理解建议的更改。我想知道是否有人可以帮助我更改我的代码,以便我可以使用该更改。如果需要,我可以发布整个代码(如果有帮助的话)。 PS。在有人回应之前,您为什么不问提出建议的人:我同意了。
建议:进行修复,以使尾随的右侧paren向左移动4 pos。
Val(Left(pair, InStr(pair, "-"))) - 1
我有一个有效的宏,但只有在除以19.00时才有效。如果要除以20.00或更高的数字,则仅除以10.00,仅此而已。假设将不超过12.00的任何数字划分为10个单元格,超过12.00的任何数字被划分为找到的对中的第一个数字。我已经复制了我的Excel工作表。要划分的数字在单元格D30(20.00)中。
Sub DIVIDE()
Application.ScreenUpdating = False
Dim pair As Variant, accumulator As Variant
Dim findFifteen As Double
Dim remainder As Long, found As Long
found = 1
For Each pair In Range("B30, F30, J30")
If Right(pair, 2) = 15 Then
If pair.Offset(0, 2) <= 12 Then
findFifteen = pair.Offset(0, 2) / 10
remainder = 0
Else
findFifteen = 1
remainder = pair.Offset(0, 2) Mod 10
End If
For Each accumulator In Range("A36, D36, G36, J36, M36, A40, D40, G40, J40, M40")
If accumulator.Offset(-1, 0) = Val(Left(pair, InStr(pair, "-") - 1)) Then
accumulator.Value = accumulator.Value + remainder
End If
accumulator.Value = accumulator.Value + findFifteen
Next accumulator
End If
Next pair
Application.ScreenUpdating = True
End Sub
Excel工作表:
答案 0 :(得分:0)
从中间往外看给我看
pair = "400-bar"
Debug.Print InStr(pair, "-")
Debug.Print Left(pair, InStr(pair, "-"))
Debug.Print Val(Left(pair, InStr(pair, "-"))) - 1
导致
4
400-
399
所以我认为您的助手在说的是在Left函数括号内移动最右边的参数(-1)。
Debug.Print Val(Left(pair, InStr(pair, "-") - 1))
导致
400