我需要能够将包含特定单词的列左侧的单元格值更改为。例如,在COLUMNS C
和D
中,我有
C D E
1 dim 0
dim 0
car 0
car 0
dim 0
car 0
我需要能够制作一个VBA公式,它可以做任何excel,如果公式可以做的。因此,如果我输入excel(而不是vba)if(C1 = dim,D1 = 1,0),那么我会在第D列的第一行和第五行中得到1。
我需要在VBA中执行此操作的原因相当复杂但是一旦我可以在vba中使用if函数来引用它们,那么理论上我可以引用包含Dim的所有内容然后让它们显示1毫秒像以下但总计。不知何故
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
sub changeto1quickly()
range("D1").Value = 1
sleep(1)
("D1").Value= 0
End sub
这样我就可以在excel中分配一个按钮来执行这个命令(将所有那些带有昏暗的三个单元格的零改为1到一毫秒),对于C列中具有相应的那些单元格通过3个细胞在右侧细胞的偏移中变暗。
我在VBA上并不是非常先进,但如果可以在不激活或选择单元格的情况下完成,我认为它会更有效率。
这是迄今为止我能想到的最好的
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
sub changeto1quickly()
**if range(C:C)contains Dim.offset(3,0).value**
select.value(s)
range("D:D").**Values** = 1
sleep(1)
("D:D").**Values**= 0
End sub
Function ClosePosition(functionId As Long, broker As Long, orderId As
Long, execute As Long) As String
Application.ScreenUpdating = False
If execute = 1 Then
ClosePosition = prog.ClosePosition(functionId,broker,orderId)
Else
ClosePosition = "NO EXECUTE"
End If
Application.ScreenUpdating = True
End Function
除非我可以更改函数中的函数id以引用具有偏移单元格的列中的所有单元格n另一列等于dim。这可能有效,但它完全不可能,因为它必须将功能改为closeposition(s) - 然后引用if函数或我认为不可能的东西,因为我仍然基本上需要0在某个地方非常快地去1
所以我实际上可以在这个函数中看到一些变化,而不必依赖0快速变为1。如果订单ID可以引用相邻值为相关值的Dim或工具值的列。然后为包含它的所有人运行多个closeposition。它还必须引用与订单ID相同的功能ID。
类似
Function ClosePosition(functionId As Long, broker As Long, IF COLUMN D CONTAINS, RETURNS STRING OF VALUES) orderId As
Long, execute As Long) As String
Application.ScreenUpdating = False
If execute = 1 Then
ClosePosition = prog.ClosePosition(functionId FROM STRING ABOVE IF FUNCTOIN,broker,orderId FROM STRNG IF FUNCTION )
close string
Else
ClosePosition = "NO EXECUTE"
End If
Application.ScreenUpdating = True
End Function
这样的事可能吗?
Set Rng = Range("B1:B16").Find(What:="0", LookAt:=xlWhole, LookIn:=xlValues)
Rng.Offset(, 1).Value = "LOW"