VBA Excel 实践(五)Excel窗体、控件与excel数据(单元格)的关联 |
您所在的位置:网站首页 › VBA调出窗体后然后再打开就处于锁定状态咋回事 › VBA Excel 实践(五)Excel窗体、控件与excel数据(单元格)的关联 |
引言:
之前已经描述分别描述了Excel VBA的窗体、控件和Excel本身的对象(也就是数据的承载者)。本章主要描述Excle VBA中如何将控件和excel中的数据相关联。 一、如何关联已有的Excel文档和VBA其实这个就是如何使用Vba打开已有的Excel文件。这其实是我们关联excel和Excel最早要干的事,如果不打开文件,你还做毛线的操作。 使用workbooks.open方法: 表达式.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad) 括号里的都是参数 Sub open_test() Workbooks.Open "D:\pbxtest.xlsx" Workbooks(2).Activate End Sub上面示例是表示打开文件pbxtest.xlsx,并激活。为什么使用 Workbooks(2).Activate呢,因为你打开excel本身就会有一个workbook,用workbooks(1)表示。(可以参考前面章节) 注意:open方法带的路径是一个绝对路径。 二、如何关联控件和Excel数据目前我找到两个方法: 1.使用控件的controlsource,rowsource属性,能使用controlsource属性的控件如下图。rowsource 指定为组合框或列表框提供列表的来源 示例1: 下例在列表框中使用工作表单元格(A1:E4)的区域,文本框使用工作表单元格(A1)。这个代码示例使用了 RowSource 、BoundColumn 和 ControlSource 属性。 若要使用该示例,请将示例代码复制到某窗体的声明变量部分。请确保该窗体包含名为 LIstBox1 的列表框,命名为TextBox1的文本框。在工作表单元格的 A1:E4 中输入数据。 Private Sub UserForm_Initialize() Workbooks(2).Activate TextBox1.ControlSource = "a1" ListBox1.ColumnCount = 5 ListBox1.RowSource = "a1:e4" End Sub运行结果如下: 红色框表示Textbox内的数据已经和excel的A1内容关联上了,蓝色框标识listbox的数据与Excel的A1:E4的数据关联上了,此时修改A1的内容,窗口内控件的值也会跟着动 如下图: 上个例子比较死板,Textbox只能对应显示某一个Excel的单元格,且只能做如下动作:修改单元格然后触发TextBox的内容变化。我想更近一步的操作,比如我想鼠标选定哪个单元格,哪个单元格的内容就显示到TextBox(文本框),并且当修改文本框的内容时,Excel当前选定的单元格内容也会随之改变,该怎么弄?分三步: 首先,写一个选定单元格的方法,并在窗体初始化时调用: 目的:初始化时文本框就能显示已经选定单元格的内容。 '选定Excel单元格 Public Sub select_test() Dim rng As Range Set rng = ActiveCell.Cells UserForm1.TextBox1.Value = rng.Value End Sub '初始化窗口 Private Sub UserForm_Initialize() Workbooks(1).Activate Call select_test End Sub 注意:select_test()方法要定义成public方便不同的模块调用。第二,改变文本框内容时,选定的单元格内容同步修改 使用TextBox的Change方法。 Private Sub TextBox1_Change() Set rng = ActiveCell.Cells rng.Value = UserForm1.TextBox1.Value End Sub第三,文本框显示选定单元格的内容 使用worksheet的SelectionChange方法。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Call select_test End Sub选定单元格显示到文本框 修改文本框内容,EXCEL选定的单元格内容同步修改 不会弄gif图,凑合着看吧。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |