2015-06-11 58 views
0

我在使用下拉列表检测单元格中的值时遇到了一些问题。VBA:使用下拉列表检测单元格中的值

当我运行下面的代码时,它只给了我在列I列中的值0。柱H包含若干Dropdown lists(由数据验证制造),该值可以是Yes或No:

Sub DropDownlistValue() 

Dim Holidays As Worksheet 

Dim Checkbox_RowCount As Long 
Dim HolidayCount As Long 

Set Holidays = ThisWorkbook.Sheets("Visning") 

Checkbox_RowCount = Holidays.Cells(Holidays.Rows.Count, "H").End(xlUp).Row 

For HolidayCount = 2 To Checkbox_RowCount 
    If Not IsEmpty(Holidays.Range("H" & HolidayCount)) Then 

     Holidays.Activate 
     Holidays.Range("H" & HolidayCount).Select 

     If ActiveCell = "YES" Then 
      ActiveCell.Offset(0, 1) = 1 
     Else 
      ActiveCell.Offset(0, 1) = 0 
     End If 
    End If 
Next HolidayCount 

End Sub 

预先感谢。

+0

该问题已通过以下答案解决。感谢您的关注。 –

回答

1

什么,你可能需要的是在这条线的变化:

If ActiveCell = "YES" Then 

If Ucase(ActiveCell) = "YES" Then 

还有一个提示 - 移动这条线:前

Holidays.Activate 

/你的外循环。

+0

像魅力一样工作谢谢你。 –

+0

循环遍历行并检查非空单元时,不需要“select”和“activate”。你为什么不改变你的代码来鼓励使用'Holidays.Range(“H”&HolidayCount).offset()'而不是'active cell'? – bonCodigo

相关问题