基于价值的Vba小区选择

时间:2014-06-27 20:13:42

标签: excel-vba vba excel

我找不到任何问我想要的东西......

我使用两个条件来设置我的选择(找到值" Reducer",然后在它下面的单元格中,找到"" {一个空单元格})。 / p>

我无法找到一种方法来选择符合这些条件的单元格,然后列出单元格地址(我想在消息框中显示单元格地址,提醒他们'错误的位置&# 39)

最终会有更多的细胞需要寻找,这就是我想要搜索多个细胞的原因。

简而言之,我希望我的代码找到两个条件,选择符合条件的单元格,并显示一条弹出消息,说明错误所在的单元格。

Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveSheet.Range("J11").Value < 0 Then
    MsgBox "You have exceeded the maximum allowable pipe length for this section. Please review your selection before continuing. ", vbOKOnly, "Inoperable Pipe Length"
End If

Do While ActiveSheet.Range("J17,J7").Value = "Reducer"
   If ActiveSheet.Range("J18,J8").Value = "" Then
        G = Sheets("Pipe Calcs").Range("J18,J8").Address
        MsgBox "Please Select a reducer size in cell " & G & ActiveCell.Address(False, False), vbCritical, "No Reducer Size Selected"
        Exit Sub
    Else
        End
    End If
Loop
End Sub

1 个答案:

答案 0 :(得分:1)

Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveSheet.Range("A1").Value < 0 Then
    MsgBox "You have exceeded the maximum allowable pipe length for this section. Please review your selection before continuing. ", vbOKOnly, "Inoperable Pipe Length"
End If

For Each cell In Range("J1:J1000")
    If cell.Value = "Reducer" Then
        If Range(cell.Address).Offset(1, 0) = "" Then
        G = Sheets("Pipe Calcs").Range(cell.Address).Offset(1, 0).Address
        MsgBox "Please Select a reducer size in cell " & G
        Range(Cell.Address).Offset(1, 0).Select
        Exit Sub
        End If
    End If
Next


End Sub

上面的代码将检查列J是否为“Reducer”,如果找到,它将查看下面的单元格是否包含值,如果不是,它将提示用户输入单元格并退出子。当用户更新单元格时,它们会触发Worksheet_Change语句并使宏再次运行。