gpt4 book ai didi

vba - 是否可以将 Excel 宏与文件扩展名相关联?

转载 作者:行者123 更新时间:2023-12-04 20:14:25 25 4
gpt4 key购买 nike

我已经构建了一个用于构建和运行 SQL 查询的宏。到目前为止,我对此感到非常满意。我唯一想添加的是在 Windows 中双击 .sql 文件并在宏内打开的能力。示例如下:

SQL Query Tool

这是按下加载查询时打开 SQL 文件的代码。

Sub LoadQuery()
Dim fNameAndPath As Variant
fNameAndPath = Application.GetOpenFilename(FileFilter:="SQL Query Files (*.sql), *.sql", Title:="Select File To Be Opened")
If fNameAndPath = False Then Exit Sub
Open fNameAndPath For Input As #1
Sheets("Sheet1").SQL_Query = Input$(LOF(1), 1)
Close #1
Sheets("Sheet1").SQLFileName.Caption = fNameAndPath
End Sub

这甚至可能吗?我不认为它会,但我想我会先和你们核实一下。

到目前为止我尝试了什么?没什么,因为我什至不知道从哪里开始,谷歌叔叔并没有勾搭一个兄弟,事实上他只是让我更加困惑。

使用下面的想法,我这样做了:
Option Explicit
Dim xlApp, xlBook, fNameAndPath

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("G:\Analytics Reporting Archive\SQL Client.xlsm", 0, True)
xlApp.Open WScript.Arguments(0) For Input As #1
xlBook.Sheets("Sheet1").SQL_Query = Input$(LOF(1), 1)
xlApp.Close #1
xlBook.Sheets("Sheet1").SQLFileName.Caption = fNameAndPath
Set xlBook = Nothing
Set xlApp = Nothing
WScript.Quit

这不起作用,它不喜欢打开文本文件(sql 文件),所以我在 Excel 应用程序中创建了一个小例程:
Sub LoadQueryDBLClick(QueryFileName As String)
Open QueryFileName For Input As #1
Sheets("Sheet1").SQL_Query = Input$(LOF(1), 1)
Close #1
Sheets("Sheet1").SQLFileName.Caption = fNameAndPath
End Sub

然后在 VBS 中调用它,如下所示:
Option Explicit
Dim xlApp, xlBook, fNameAndPath

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("G:\Analytics Reporting Archive\SQL Client.xlsm", 0, True)
xlApp.Run "LoadQueryDBLClick " & WScript.Arguments(0)
Set xlBook = Nothing
Set xlApp = Nothing
WScript.Quit

厉害吧?

不 :(。它“会”起作用,对此我充满信心(非常感谢你们为我发布了让我走到这一步的回复),但可惜 Citrix 再次罢工:

错误:ActiveX 组件无法创建对象:“Excel.Application”

我相信你们已经解决了这个问题,因为 Citrix 现在是问题所在。

最佳答案

请参阅此处了解如何创建自定义扩展并将其与操作相关联。

https://superuser.com/questions/406985/programatically-associate-file-extensions-with-application-on-windows

在您的情况下可能有用的是将扩展名与 vbs 文件相关联,该文件将启动 SQL 文件路径作为参数并使用自动化打开您的 Excel 文件,然后将 SQL 文件加载到工作簿中。

关于vba - 是否可以将 Excel 宏与文件扩展名相关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31330534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com