表单控件(EXCEL窗体)的列表框添加数据源(VBA)先建立如图模型代码1Subsetdata()DimshpAsShapeSetshp=ActiveSheet.Shapes(1)shp.ControlFormat.ListFillRange=A1:A6EndSub运行结果:代码2Subsetdata()DimshpAsShapeDimiAsIntegerSetshp=ActiveSheet.Shapes(1)Withshp.ControlFormatFori=1To6.AddItemRange(A&i)NextEndWithEndSub运行结果:代码3Subsetdata()DimshpAsShapeDimiAsIntegerDimarrDimobjAsObjectSetshp=ActiveSheet.Shapes(1)Setobj=shp.ControlFormatarr=Range(A1:A6)obj.List=arrEndSub运行结果:1.代码1与直接在EXCEL操作录制宏得到的代码是一样的,运行后在设置控件格式里可以看到设置的数据源,但是代码2和代码3无法在EXCEL的设置控件格式中看到设置的数据源,如下图,数据源区域中将会是空2.代码3中要注意一下,在赋值的过程中必须要通过一个Object对象和数组来过渡,不能在一个表达中一次性完成,即shp.ControlFormat.List=arr和obj.List=Range(A1:A6)都是错误的,当然再进一步用一句代码完成也是无法实现的。