【问题标题】:VBA - Select value from Validation ListVBA - 从验证列表中选择值
【发布时间】:2014-11-09 23:38:48
【问题描述】:

我在电子表格中有一些代码应该更改名为“分析”的工作表上验证列表中的值。如果已选择值“成本”,则分析列表中单元格 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()

【问题讨论】:

  • 这段代码没有问题。
  • 这有点令人困惑。为什么要通过单击同一单元格中的costs 将值更改为FTE?还是其他工作表中的列表?上述B细胞是否在不同的表中(一个是“分析”)?

标签: vba validation excel


【解决方案1】:

这完全是我的疏忽,代码写成 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()

【讨论】:

  • 我同意@TimWilliams 的评论。由于您首先选择了工作表,因此上面的代码没有任何问题。但是上面的代码更好,您也可以删除Worksheets("Analysis").Select 行。
猜你喜欢
  • 2022-07-06
  • 2013-10-18
  • 1970-01-01
  • 1970-01-01
  • 2010-09-17
  • 2015-02-27
  • 2019-09-09
  • 1970-01-01
  • 2021-06-01
相关资源
最近更新 更多