【问题标题】:Combobox LinkedCell as Percentage when selecting an item选择项目时组合框 LinkedCell 作为百分比
【发布时间】:2018-11-09 01:43:50
【问题描述】:

我有一个Active X Combo box,其中列出了 10%、20% 等百分比。 当我在其中选择一个值时,Combo Box(30%)ComboBox 的值变为“0.3”。所以LinkedCell 接收到值“0.3”。

当我手动输入一个百分比作为Combobox 的值(例如“30%”)时,LinkedCell 检索相同的值(“30%”)(单元格格式为Text)。

当我在下拉列表中选择一个项目时,如何让它在LinkedCell 中显示 10%、20% 等?

推荐的解决方案

我尝试按照针对此问题的建议更改格式,但并没有解决问题。

Private Sub ComboBox3_Change()
ComboBox3.Value = Format(ComboBox3.Value, "0.0%")
End Sub

而且结果是不连贯的:

我如何填充组合框:

Combobox(开发人员-> 属性)的ListFillRange 是我直接在工作表中输入的百分比Range(公式-> 名称管理器)。

【问题讨论】:

  • 你是否也格式化了你的链接单元格?
  • 是的,正如我所提到的,它的格式是Text。因此,如果我手动向 Combobox 强制一个值 (30%),LinkedCell 会毫无问题地检索到好的格式 (30%)。
  • 将链接单元格格式化为 %。这适用于我的更改代码。
  • 我也试过了,但它仍然将值检索为“0.3”。此外,由于代码不连贯,在选择“30%”时,Combobox 中显示的值变为“0,2%”。
  • 我注意到你上面的图片中没有链接的单元格 - 这肯定设置正确。

标签: vba excel combobox


【解决方案1】:

我无法在评论中详细说明,所以这是我使用的设置。源范围是“Fred” - 10%/20%/30%,链接单元格是 E1,格式为 %,我使用了您的更改代码。当我更新组合框时,E1 的变化如图所示。

【讨论】:

  • 使用相同的代码,每次我选择一个项目时,我都会在Combobox 中得到“0%”作为值,而在LinkedCell 中它会显示好项目,但格式为“0.1”
  • 尝试从头开始在新工作簿中设置它,看看它是否有效。也许其他代码正在干扰。
  • 好主意,我尝试从头开始一个新的,但问题仍然存在。 (我更新了新的屏幕截图)你也有 Excel 2016 吗?
  • 看看你的系统分隔符,你有 , 十进制吗?您的组合框将显示 0.1(但在这种情况下,您需要 0,1 来表示 10%)。使用 .list 或 AddItem 填充您的 ComboBox,而不是 ListFillrange
  • ActiveX 有很多 bug,所以如果可能的话最好使用 Forms 控件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-01
  • 1970-01-01
相关资源
最近更新 更多