在UserForm上显示单元格范围;然后更新

时间:2009-02-04 14:05:24

标签: excel vba excel-vba

我一直在使用粗略的方法来帮助用户更新某些单元格 - 将它们放在工作表中。有没有什么方法可以逐个显示用户窗体中的各种范围,然后让用户更新它们,单击按钮然后移动到下一个?

基本上,我可以让Excel根据范围自动生成输入表单吗?我可以做的更新和保存到工作表的过程;这是正确形式的产生,我不能。

3 个答案:

答案 0 :(得分:0)

我不太满足你所寻找的东西,但你可以插入第二张纸并将其用作“形式”。另一种方法可以是带有输入字段的对话框。

无论哪种方式,使用vba函数呈现您希望用户逐个更改的单元格。您实现了“上一个字段”和“下一个字段”按钮,因此用户可以单步执行单元格范围。如果用户点击“下一个字段”,则保存他的输入并从先前定义的单元格区域中取出下一个单元格。

您可以使用“配置字段”来定义要更改的单元格范围。

答案 1 :(得分:0)

可以这样做,但我能想到的唯一方法是创建一个基于传入的范围自动填充自身的用户表单。这样,您可以在Excel中使用不同的宏来调用表单来填充基于不同的范围。我构建了一个概念验证Excel文件来尝试这个,它似乎工作,我能想到的唯一问题是你需要找出一种方法告诉用户输入字段是什么。

我认为需要做的是以编程方式向用户窗体添加控件(我将文本框命名为要填充的单元格地址)然后当窗体关闭时循环遍历所有文本框并使用文本框填充单元格值。

你可以看到我做了什么: https://my.syncplicity.com/share/uicgbs3rl0/InputForm.xls

我认为所有需要做的就是让你找出如何为文本框添加标签,并确保根据你添加的控件调整表单的大小......

答案 2 :(得分:0)

这是非常粗糙和老式的但是如果你有标准列表格式的数据 - 即你的范围的第一行中的列标题,然后是下面每行中的一个数据记录 - 那么选择范围内的单元格并且Data > Form将为您提供粗略的输入表单,其中包含您需要的大致功能。

您也可以通过调用相应工作表的ShowDataForm方法在VBA中执行此操作。只需在您需要的范围内选择一个单元格。在用户关闭数据表单

之前,宏将保持暂停状态