Excel VBA - Worksheet_Change下拉列表

时间:2016-02-04 16:51:46

标签: excel vba excel-vba

您好Stackoverflow社区,

如果满足条件,我想添加数据验证下拉列表。

使用Excel VBA,我想添加下拉列表以填充N列,这是我的帐户状态,每当单词" Final Recon"出现在C列中,这是我的估价状态,但只有在单词" Final Recon"出现在C栏中。

使用Excel VBA - 私有子工作表_Change(ByVal目标作为范围):

如果" Final Recon"出现在C列中,然后使用以下状态填充下拉列表:" Final"或者"在审核"之后,否则不要填充下拉列表。

我可以使用非VBA验证列表,但在此类评估审核中,我需要使用VBA版本。

这是我到目前为止所做的事情,我很困难。 我有" Final Recon"在C列中,如果最终重新调整出现在C列中,则使用" Final"选项填充下拉列表。和"正在审核"。

但由于某些原因,当Final Recon出现在C列时,drop-dwon列表没有填入N列。

提前感谢您提供任何帮助或解决方案。

$Body .= "Guest_Name: ";
$Body .= $Guest_Name;
$Body .= "\n";
$Body .= "Guest_Role: ";
$Body .= $Guest_Role;
$Body .= "\n";

1 个答案:

答案 0 :(得分:0)

我能够弄清楚。我遇到的唯一问题是 如果“Final Recon”不在“C”栏中,则下拉不显示。

   On Error Resume Next

 If Target.Column = 3 Then

   If Target.Validation.Type = "Final Recon" Then

    Application.EnableEvents = False

     ''get the data drop-down validation list

    Target.Offset(0, 11).Select

    With Selection.Validation


  .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop
     Operator:=xlBetween, _                      
  Formula1:="Final", Formula2:="Under Review"

  .IgnoreBlank = True
  .InCellDropdown = True
  .InputTitle = ""
  .ErrorTitle = ""
  .InputMessage = ""
  .ErrorMessage = ""
  .ShowInput = True
  .ShowError = True

  End With

 Else
  Target.Offset(0, 11).Value = ""

   End If
 End If

 exitHandler:
   Application.EnableEvents = True
   Exit Sub