Excel 使用VBA向范围内的所有空白单元格添加验证列表

Excel 使用VBA向范围内的所有空白单元格添加验证列表,excel,vba,Excel,Vba,如果单元格范围为空,我将尝试向其添加验证列表。我首先在a列中查找一个值,然后查看该值是否在另一个列表中。如果没有,则该单元格应保留为空,并应向该空白单元格添加验证列表。我已经尝试了很多方法,但是我的for循环显然是不正确的,因为经过空白单元格循环后仍然是空白。我已经在SO和其他一些网站上查看了一些解决方案,但我没有找到任何解决我的问题的方法 Sub FormulaTest() Dim lRow As Integer Dim conv As Worksheet Set conv = Sheet

如果单元格范围为空,我将尝试向其添加验证列表。我首先在a列中查找一个值,然后查看该值是否在另一个列表中。如果没有,则该单元格应保留为空,并应向该空白单元格添加验证列表。我已经尝试了很多方法,但是我的for循环显然是不正确的,因为经过空白单元格循环后仍然是空白。我已经在SO和其他一些网站上查看了一些解决方案,但我没有找到任何解决我的问题的方法

 Sub FormulaTest()

Dim lRow As Integer
Dim conv As Worksheet
Set conv = Sheets("Conversion")

lRow = conv.Range("A2").End(xlDown).Row

conv.Range("B2").Formula = "=IFNA(VLOOKUP(A2,Suggestions,4,FALSE),"""")"
conv.Range("B2").Copy
conv.Range("B3:B" & lRow).PasteSpecial Paste:=xlFormulas
conv.Range("B2:B" & lRow).Copy
conv.Range("B2:B" & lRow).PasteSpecial Paste:=xlValues

For Each cell In Range("B2:B" & lRow).Cells
    If IsEmpty(cell) = True Then
        With cell.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:="=ValidList"
        End With
    End If
Next cell

End Sub

事实上,我找到了一个更简单的方法来解决我的问题。由于用户将从相同的列表中进行选择,我意识到我可以在保留答案的同时将验证列表添加到他们的单元格中

Sub FormulaTest()

Dim lRow As Integer
Dim conv As Worksheet
Set conv = Sheets("Conversion")

lRow = conv.Range("A2").End(xlDown).Row

conv.Range("B2").Formula = "=IFNA(VLOOKUP(A2,Suggestions,4,FALSE),"""")"
conv.Range("B2").Copy
conv.Range("B3:B" & lRow).PasteSpecial Paste:=xlFormulas

For i = 2 To lRow
    Cells(i, 2).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:="=ValidList"
Next i

End Sub

事实上,我找到了一个更简单的方法来解决我的问题。由于用户将从相同的列表中进行选择,我意识到我可以在保留答案的同时将验证列表添加到他们的单元格中

Sub FormulaTest()

Dim lRow As Integer
Dim conv As Worksheet
Set conv = Sheets("Conversion")

lRow = conv.Range("A2").End(xlDown).Row

conv.Range("B2").Formula = "=IFNA(VLOOKUP(A2,Suggestions,4,FALSE),"""")"
conv.Range("B2").Copy
conv.Range("B3:B" & lRow).PasteSpecial Paste:=xlFormulas

For i = 2 To lRow
    Cells(i, 2).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:="=ValidList"
Next i

End Sub

编辑您的问题并发布您正在使用的数据的一些图像。编辑您的问题并发布您正在使用的数据的一些图像。