链接用户窗体与工作表.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
链接用户窗体与工作表 前言在使用 Excel 时,很多用户都希望有一个合适的数 据输入窗体,在该窗体中输入数据后,这些数据会自动放置 在工作表的相应单元格中,或者将工作表中的数据提取到窗 体中便于直接查看。 我整理了 Dick 有关这方面技术的一系列 文章,在这里与大家分享。 演示—— Excel 的记录单 Excel 提供了一个名为 #8220;记录单 #8221;的功能,用来 让用户在窗体中输入数据并将数据放入工作表相应位置。如 图 1 所示,单击 #8220; 数据——记录单 #8221; ,调出相应 的对话框。(在 Excel 2007 中,单击 #8220;Office 按钮—— Excel 选项 #8221;,在 #8220;Excel 选项 #8221;对话框中 选择 #8220; 自定义——不在功能区中的命令(或所有命令) #8221; ,选择 #8220; 记录单 #8221; 并单击添加将其添加 至快速访问工具栏) 。图 1:Excel 的#8220; 记录单 #8221; 此时,可以在对话框中输入相应的数据,单击 #8220; 新建 #8221; 按钮后,所输入的数据会放置到工作表中。然而, 记录单有很大的局限,它限制用户能够做的事情并且不能完 全定制。 注意,要调出 #8220; 记录单 #8221; 对话框,必须将活动单 元格置于列表区域内。如果列表字段多于 32 个,将不能使 用#8220; 数据——记录单 #8221; 命令, 用户必须直接在工 作表中输入数据。 此外, John Walkenback 还开发了一个优秀的记录单增强版 本,有兴趣的朋友可以在网上找到该插件。这个增强版本的 记录单能够满足绝大多数 Excel 用户的需要。 与工作表相链接的用户窗体 下面介绍的不是一个通用目的的数据记录单,而是为特定的 数据库建立的数据录入窗体。其主要目的是为了说明用户可 以使用用户窗体定制满足自身实际情况的输入和显示窗体。 用户窗体设计 本示例的工作表如图 1 所示,包含人员的联系信息。本示例 采用的用户窗体如图 2 所示,用来输入和编辑信息。该窗体 共有 6个标签控件, 3个文本框控件, 2 个组合框控件, 2个 按钮控件, 1 个滚动条控件。 其中滚动条控件用来导航记录。 图 2 :数据输入窗体设计 将上面的窗体命名为 UContact,其中各控件的名称和 Tag属 性分别为: 名称(Tag属性) txtName(0) cmbXb(1) txtAddress(2) txtCity(3) cmbState(4) txtZip(5) scbContact() cmdSave() cmdClose() lblName() lblXb() lblAddress() lblCity() lblState() lblZip() 其中, Tag 属性指出了工作表中数据相对于列 A 的偏移量 例如,txtName的Tag属性为0,表明在其中输入的数据就在 A列。括号中为空表明该控件没有设置 Tag属性。 装载用户窗体时 下面的过程在用户窗体装载时,从工作表中读取数据并填充 窗体中的相应控件。 #160; Private Sub PopulateRecord() Dim lRow As Long Dim ctlInfo As Control 存储当前记录所在的行 lRow = Me.scbContact.Value With wksContacts.Range(A1) 遍历控件 For Each ctlInfo In Me.Controls 如果 Tag 属性为数值,则该控件是数据输入控件 If IsNumeric(ctlInfo.Tag) Then 从工作表中获取数据 ctlInfo.Text = .Offset(lRow, ctlInfo.Tag).Value End If Next ctlInfo End With 标记清除的记录 Me.IsDirty = False End Sub 其中,wksContacts为工作表的对象名称。 使用Tag属性存储 每个字段相对于列 A 的偏移量,并且使用 IsNumeric 函数进 行测试,以方便以后对窗体的扩展,例如当设置 Tag属性为 字符串型时。 代码最后一行中的 IsDirty 属性将在随后的内容 中讨论。 将用户窗体中的数据输入到工作表 下面的过程与刚讲述的过程几乎相同,只是数据传输的方向 相反,即将用户窗体中的数据输入到工作表相应的单元格 中。 #160; Private Sub SaveRecord(Optional ByVal lOffset As Long = 0) Dim lRow As Long Dim ctlInfo As Control 存储当

文档评论(0)

kunpengchaoyue + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档