VBA-从验证列表中选择值

VBA-从验证列表中选择值,vba,validation,excel,Vba,Validation,Excel,我在电子表格中有一些代码,这些代码应该会更改名为“分析”的工作表上validaiton列表中的值。如果已选择“成本”值,则分析列表中B1单元格中的值应更改为FTE,否则应选择“成本”值 下面的代码似乎没有更改验证列表中的值,当我试图录制宏以了解宏录制将如何录制验证更改时,录制器不会录制验证更改。有人知道如何通过VBA从验证列表中选择值吗 我现在的代码如下 Sub ChangeValue() Worksheets("Analysis").Select With Worksheets("Analy

我在电子表格中有一些代码,这些代码应该会更改名为“分析”的工作表上validaiton列表中的值。如果已选择“成本”值,则分析列表中B1单元格中的值应更改为FTE,否则应选择“成本”值

下面的代码似乎没有更改验证列表中的值,当我试图录制宏以了解宏录制将如何录制验证更改时,录制器不会录制验证更改。有人知道如何通过VBA从验证列表中选择值吗

我现在的代码如下

Sub ChangeValue()

Worksheets("Analysis").Select
With Worksheets("Analysis")
   If Range("B1").Value = "Costs" Then
      Range("B1").Value = "FTE"
   Else
      Range("B1").Value = "Costs"
   End If
End With

End Sub()

这完全是我的疏忽,代码是用Range而不是.Range编写的。固定在下面

Sub ChangeValue()

Worksheets("Analysis").Select
With Worksheets("Analysis")
   If .Range("B1").Value = "Costs" Then
      .Range("B1").Value = "FTE"
   Else
      .Range("B1").Value = "Costs"
   End If
End With

End Sub()

这段代码没有什么问题。这有点让人困惑。为什么要通过单击同一单元格中的
成本
将值更改为
FTE
?或者该列表是否在其他工作表中?上述B细胞是否在不同的表格中(一个是“分析”)?我同意@TimWilliams的意见。由于您首先选择了工作表,所以上面的代码没有问题。但是,上面的代码更好,您也可以删除
工作表(“分析”)。选择
行。