【发布时间】:2021-11-01 13:32:03
【问题描述】:
我对以下代码有一些问题:
Sub Sendorders()
Application.ScreenUpdating = False
Dim wb As Workbook: Set wb = Workbooks("Hugo Automate V15.xlsm")
Dim ws As Worksheet: Set ws = wb.Worksheets("Bid-Ask")
Dim i As Long
ws.Activate
ws.Cells(2, 20) = ws.Cells(2, 20) & " Equity"
For i = 8 To 242
If ws.Cells(2, 20).Value = ws.Cells(i, 1).Value Then
If Cells(2, 23) = "BUY" Then
Cells(i, 20) = Cells(2, 22)
Cells(i, 21) = Cells(2, 21)
Else
Cells(i, 22) = Cells(2, 22)
Cells(i, 23) = Cells(2, 21)
End If
End If
Next
Application.ScreenUpdating = True
End Sub
我想像这样编译 ligne 7 和 ligne 10:
If ws.Cells(2,20) & "Equity".Value = ws.Cells(i,1).Value Then
但是这不起作用...
【问题讨论】:
-
If ws.Cells(2,20).Value & "Equity" = ws.Cells(i,1).Value Then添加的文本不是范围的一部分,因此您不能在字符串之后使用 value 属性。请注意,范围的标准属性是值,因此ws.Cells(2, 20)被解释为ws.Cells(2, 20).value。所以第 7 行在技术上已经是ws.Cells(2, 20).value = ws.Cells(2, 20).value & " Equity"但是这两个字符串(一个空格)有区别,只是为了让你知道。
标签: vba if-statement