作者JointBank (嘘~ 不要问!)
看板Office
标题[算表] vba combobox显示百分比
时间Wed Sep 13 23:27:50 2017
软体:Excel
版本:2016
因选单需要显示为百分比
但如果为字串表示则无法做运算
该如何让Combobox选项数字显示为百分比"%"
确有办法让该值做运算?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.37.216.201
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1505316474.A.9CA.html
1F:→ soyoso: 选项显示百分比可以数字 & "%"或format格式以"0%"之类 09/13 23:46
2F:→ soyoso: 运算上可先将val(combobox)除100 09/13 23:47
3F:→ soyoso: 运算上也可format(combobox) 09/13 23:50
4F:→ soyoso: 如有小数点val改以cdbl,取代replace combobox的%或left 09/13 23:56
5F:→ soyoso: 字数为len减1 09/13 23:57
感谢S大回覆
经测试结果如下
Private Sub CommandButton5_Click()
Dim s1, s2, s3, s4 As Double
If CheckBox1.Value = True Then
Range("f24").Value = Yes
ElseIf CheckBox2.Value = True Then
Range("f24").Value = No
End If
s1 = Application.WorksheetFunction.Round(-Range("j24").Value *
CDbl(ComboBox7.Value) / 100, 0)
s2 = Application.WorksheetFunction.Round(-Range("j24").Value *
Val(ComboBox7.Value) / 100, 0)
Range("J27").Value = s1
Range("J28").Value = s2
s2 为整数部份 正常可行
s1 带小数点 ==>执行错误13
形态不符合
With ComboBox5
'.List = Array("0.0191")
.List = Array(1.91 & "%")
End With
With ComboBox7
'.List = Array("0.03", "0.1", "0.15", "0.2")
.List = Array(3 & "%", 10 & "%", 15 & "%", 20 & "%")
End With
End Sub
'此行改写为
s1 = Application.WorksheetFunction.Round(-Range("j24").Value *
Left(ComboBox5.Value,Len(ComboBox5.Value -1), 0))
错误讯息为
翻译错误
引数的个数错误或指定不了正确的属性
※ 编辑: JointBank (114.37.216.201), 09/14/2017 00:57:11
※ 编辑: JointBank (114.37.216.201), 09/14/2017 01:02:14
s1 = Application.WorksheetFunction.Round(-Range("j24").Value *
Left(ComboBox5.Value, Len(ComboBox5.Value) - 1) / 100, 0)
执行正常
改怎麽判断何时该加Application.WorksheetFunction
※ 编辑: JointBank (114.37.216.201), 09/14/2017 01:07:50
6F:→ soyoso: 当要使用工作表函数且worksheetfunction物件下有提供该函 09/14 07:04
7F:→ soyoso: 数方式时,加application.worksheetfunction或 09/14 07:05
8F:→ soyoso: worksheetfunction 09/14 07:05
9F:→ soyoso: 回文函数方"式"改为函数方"法" 09/14 07:06
10F:→ JointBank: 此案例application.worksheetfunction是有.len 这个方 09/14 09:46
11F:→ JointBank: 法的 但加了却反而失败 09/14 09:46
12F:→ soyoso: 於回文就有提了worksheetfunction物件下有提供该函数方法 09/14 10:02
13F:→ soyoso: 时 09/14 10:03
15F:→ soyoso: 明下并无搜寻len该方法 09/14 10:18
16F:→ soyoso: 原po回文写到有这个方法,也请提出看看 09/14 10:19
18F:→ soyoso: 提示(字母排序)下也未看len的方法 09/14 10:21
19F:→ JointBank: 重新检视後 确定无此方法 可能一时眼花未注意 感谢S 09/14 10:39
20F:→ JointBank: 大 09/14 10:39