通过单击单元格,在 Excel 中执行脚本/宏

通过单击单元格,在 Excel 中执行脚本/宏

我想在 Excel 2010 中做一些事情。具体来说,我希望能够通过单击当前打开的工作表的单元格上的“-important-”来使打开的工作表从文本文件中加载数据。

所以我的具体需求是:

  1. 如果可以的话,可以通过单击单元格来启动宏/脚本。

关于脚本/宏:

  1. 您认为哪种实施方式更可取?

  2. 更具体地说,如何仅通过单击即可自动导入所需的数据,而不必每次都不断指定所需的 .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

您必须做出的改变:

  1. 双击的单元格是 B9
  2. 要打开的文本文件的文件规范
  3. 导入数据的目的地

因为它是工作表代码,所以非常容易安装和自动使用:

  1. 右键单击 Excel 窗口底部附近的选项卡名称
  2. 选择查看代码-这将打开一个 VBE 窗口
  3. 粘贴内容并关闭 VBE 窗口

如果您有任何疑虑,请首先在试用工作表上尝试一下。

如果您保存工作簿,宏将随之保存。如果您使用的是 2003 以后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx

要删除宏:

  1. 调出如上所示的 VBE 窗口
  2. 清除代码
  3. 关闭 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 控件中选择按钮 ActiveX控件


接下来单击并拖出按钮的形状,然后右键单击它并选择属性。

从这里,您可以更改按钮上显示的文本和按钮的颜色等内容。如果右键单击时选择“格式控制”并转到“属性”,则可以将框设置为在单元格/行/列更改时不移动和缩放。

接下来右键单击按钮并选择查看代码
查看代码


这会将您带到代码窗口,您可以在其中插入 VBA。从那里输入 Gary 的其余代码,从 Dim TextLine 开始。

最后返回到“开发人员”选项卡并取消选择“设计模式”
设计模式


现在您可以测试按钮了。如果您需要对其进行任何更改或移动,只需重新选择“设计模式”即可。

相关内容