Excel UserForm VBA中的格式下拉列表
我在参考选项卡中有一个增值税税率列表,显示为0.0%、2.0%、5.0%、17.5%、20.0%。但是,当这些税率添加到用户表单时,它们会更改为以下格式:0.00、0.02、0.05、0.175和0.2 有人能告诉我如何更正格式吗Excel UserForm VBA中的格式下拉列表,excel,vba,userform,Excel,Vba,Userform,我在参考选项卡中有一个增值税税率列表,显示为0.0%、2.0%、5.0%、17.5%、20.0%。但是,当这些税率添加到用户表单时,它们会更改为以下格式:0.00、0.02、0.05、0.175和0.2 有人能告诉我如何更正格式吗 #importing the VAT Rate list NewRangePlan.VATRateDD.List = Ref.Range("AE2:AE7").Value Short。使用MMult() 如果您可以在下拉列表中使用不带百分号(“%”)的显示,则可以通
#importing the VAT Rate list
NewRangePlan.VATRateDD.List = Ref.Range("AE2:AE7").Value
Short
。使用MMult()
如果您可以在下拉列表中使用不带百分号(“%”)的显示,则可以通过WorksheetFunctionMMult()
尝试以下方法;否则,正如braX在评论中提到的,您“将不得不循环通过它们并在运行时格式化它们”
Dim percents As Range
Set percents = Sheet1.Range("AE2:AE7") ' set percent data range to memory
Dim factor100 As Range
Set factor100 = Sheet1.Range("A" & Sheet1.Rows.Count).Resize(1, percents.Rows.Count)
factor100 = 100 ' write factor 100 to temporary range
With Me.VATRateDD ' assuming DropDown reference within the UserForm code module
.List = WorksheetFunction.MMult(percents, factor100)
End With
factor100 = vbNullString ' clear temp range
进一步说明
不要寻址窗体的默认实例。如果您引用的是UserForm代码模块中的控件,则可以使用
Me
限定符来寻址表单的当前实例。-仅供参考,建议阅读以获得更深入的了解。使用.Text
而不是.Value
,前提是它们在工作表上的格式正确。很抱歉,返回的错误消息是“无法设置列表属性。无效的属性数组索引。NewRangePlan.VATRateDD.List=Ref.Range”(“AE2:AE7”).Text但是.Value
工作得很好?那么我想您必须循环遍历它们并在运行时格式化它们。^.Text
不像.Value
那样返回数组。返回Null
,除非源区域中的每个单元格都有相同的文本。@BigBen很高兴知道(为什么我把它作为评论而不是回答,因为我从来没有尝试过)。我想我一直在循环,因为我经常希望多个列的格式不同。