我想在 Excel 2010 中做一些事情。具体来说,我希望能够通过单击当前打开的工作表的单元格上的“-important-”来使打开的工作表从文本文件中加载数据。
所以我的具体需求是:
- 如果可以的话,可以通过单击单元格来启动宏/脚本。
关于脚本/宏:
您认为哪种实施方式更可取?
更具体地说,如何仅通过单击即可自动导入所需的数据,而不必每次都不断指定所需的 .txt 文件,最多只需在启动时指定 1 次,或者通过使用自定义的“初始化/配置”文件。
答案1
这是一个非常具体的示例,您可以根据自己的需要进行调整。这是一个通过双击单元格触发的工作表事件宏B9:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("B9")) Is Nothing Then Exit Sub
Cancel = True
Dim TextLine As String
Close #1
Open "C:\TestFolder\test.txt" For Input As #1
i = 1
j = 0
Do While Not EOF(1)
Line Input #1, TextLine
j = j + 1
Cells(i, j) = TextLine
Loop
Close #1
End Sub
您必须做出的改变:
- 双击的单元格是 B9
- 要打开的文本文件的文件规范
- 导入数据的目的地
因为它是工作表代码,所以非常容易安装和自动使用:
- 右键单击 Excel 窗口底部附近的选项卡名称
- 选择查看代码-这将打开一个 VBE 窗口
- 粘贴内容并关闭 VBE 窗口
如果您有任何疑虑,请首先在试用工作表上尝试一下。
如果您保存工作簿,宏将随之保存。如果您使用的是 2003 以后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx
要删除宏:
- 调出如上所示的 VBE 窗口
- 清除代码
- 关闭 VBE 窗口
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
要了解有关事件宏(工作表代码)的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/event.htm
必须启用宏才能使其工作!
答案2
如果没有紧迫的理由通过单元格单击来激活,那么最简单的方法就是创建一个按钮对象。
转到“开发人员”选项卡并选择“插入”,然后从 Active X 控件中选择按钮
接下来单击并拖出按钮的形状,然后右键单击它并选择属性。
从这里,您可以更改按钮上显示的文本和按钮的颜色等内容。如果右键单击时选择“格式控制”并转到“属性”,则可以将框设置为在单元格/行/列更改时不移动和缩放。
接下来右键单击按钮并选择查看代码
这会将您带到代码窗口,您可以在其中插入 VBA。从那里输入 Gary 的其余代码,从 Dim TextLine 开始。
最后返回到“开发人员”选项卡并取消选择“设计模式”
现在您可以测试按钮了。如果您需要对其进行任何更改或移动,只需重新选择“设计模式”即可。