如何将vba在特定值的相邻列中放置一个值

时间:2015-03-06 15:18:11

标签: excel vba excel-vba excel-formula offset

当我提到Dim时,我并不是说Dim在一个函数中我的意思就像汽车,公共汽车ectc等任意随机词

我需要能够将包含特定单词的列左侧的单元格值更改为。例如在COLUMNS CD中,以便B列中每个具有Dim的cel都需要运行上面的sub来快速将零更改为1,然后立即将其更改回来

我需要它来引用E1中的DIM:即如果B列有E1

    B    D    E
  1 dim   0    Dim
    dim   0
    car   0
    car   0
    dim   0
    car   0

我在这里找到了它:它说,'' http://www.quepublishing.com/articles/article.aspx?p=2021718&seqNum=8 假设您在A列中有一个产品列表,其中B列旁边有总计。如果您想要找到任何总数等于零并在其旁边的单元格中放置LOW,请执行以下操作:& #39;'

Set Rng = Range("B1:B16").Find(What:="0", LookAt:=xlWhole,        LookIn:=xlValues)
Rng.Offset(, 1).Value = "LOW"

虽然我需要它的设置略有不同,不是指A中的A列或B列,而是指不相邻的列。我要检查是D:D有Dim然后将1放在列C:C偏移到列D:D的任何单元格中 然后使用sleep(1)

将其更改回零

当然可以根据我的需要进行调整。

我的尝试

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
sub pump_onall()

 Set Rng = Range("B1:B16").Find(What:="Dim", LookAt:=xlWhole,          LookIn:=xlValues)
Rng.Offset(0, 1).Value = 1
sleep(1)
Rng.Offset(0,1).Value = 0
End sub

我在设置的Rng行

上收到错误
Sub pump_onall()

Set Rng = Sheets("Account Details    --->").Range("DH1:DH50").Value.Find(What:="DQ3", LookAt:=xlWhole,   LookIn:=xlValues)
Rng.Offset(0, -7).Value = 1
Sleep (1)
Rng.Offset(0, -7).Value = 0
End Sub

当然可以这样做

Sub pump_onall()

Sheets("Account Details --->").Range("DH1:DH50").Value.Find(What:="DQ3",  LookAt:=xlWhole, LookIn:=xlValues)
Sheets("Account Details --->").Range("DH1:DH50").Offset(0, -7).Value = 1
Sleep (1)
Sheets("Account Details --->").Range("DH1:DH50").Offset(0, -7).Value = 0
End Sub

请帮助这应该很容易

响应genepose 我试图运行sub
但是在其他地方出现了错误 对于下面

Sub pump_on()
LastRowDH = Cells(Rows.Count, 50).End(xlUp).Row
For i = 3 To LastRowDH
If Cells(i, 50) = "DQ3" Then
Cells(i, -7) = 1
Application.Wait (Now + 0.000001)
Cells(i, -7) = 0
Else
Cells(i, -7) = 0
End If
Next i
End Sub

我把" DQ3"上面我认为如果引用单元格DQ3可能会有效吗?

我试过了

Sub pump_on7()
With ThisWorkbook.Sheets("Open Positions --->")
LastRowDH = .Cells(Rows.Count, 50).End(xlUp).Row
For i = 3 To LastRowDH
    If .Cells(i, 50) = Sheets("Open Positions --->").Range("DQ3").Value Then
        .Cells(i, -7) = 1
        Application.Wait Now + TimeValue("0:00:01")
        .Cells(i, -7) = 0
    Else
        .Cells(i, 32) = 0
    End If
Next i

结束     结束子

没有运气

1 个答案:

答案 0 :(得分:0)

我不确定那是你想要的......但

With ThisWorkbook.Sheets("YourSheetName")
    LastRowC = .Cells(Rows.Count, 3).End(xlup).row
    For i = 1 To LastRowC
        If .Cells(i, 3) = "dim" Then
            .Cells(i, 4) = 1
            Application.Wait Now + TimeValue("0:00:01")
            .Cells(i, 4) = 0
        Else
            .Cells(i, 4) = 0
        End If
    Next i
End With