相关疑难解决方法(0)

等待shell命令完成

我在Excel VBA中运行一个简单的shell命令,它在指定的目录中运行批处理文件,如下所示:

Dim strBatchName As String
strBatchName = "C:\folder\runbat.bat"
Shell strBatchName
Run Code Online (Sandbox Code Playgroud)

有时批处理文件在某些​​计算机上运行可能需要更长时间,并且正在进行的VBA代码依赖于批处理文件来完成运行.我知道你可以设置如下的等待计时器:

Application.Wait Now + TimeSerial(0, 0, 5)
Run Code Online (Sandbox Code Playgroud)

但这可能不适用于某些速度太慢的计算机.有没有一种方法,系统地告诉Excel中使用VBA代码的其余部分进行到壳具有完成运行?

shell excel vba batch-file

35
推荐指数
3
解决办法
15万
查看次数

在Excel中访问VBA中的SQLite数据库

我一直在向VBA添加MS Access数据库,以便对船只进行一些分析.但是,数据库现在已更改为SQlite,我不知道如何从VBA访问.我已经尝试过使用GitHub的SQLiteForExcel,但我不明白它是如何工作的,即使是这些例子.我访问Access数据库的代码如下:( db_path是我的Access数据库的超链接)

Sub query_db()

On Error GoTo Errorhandler
Dim v_db As DAO.Database
Dim rst As DAO.Recordset
Dim vessels_db As Variant
Dim strSQL As String
Dim i As Long
Dim ws As Worksheet

Set ws = Worksheets("results")
ws.Select

vessels_db = [db_path]
Set v_db = OpenDatabase(vessels_db)


Worksheets("results").Select
[x_0].Select
Range(Selection, Selection.Offset(40000, 1)).ClearContents

strSQL = " SELECT Vessels.vsl_name, Vessels.dwt FROM Vessels " & _
          " GROUP BY Vessels.vsl_name, Vessels.dwt ORDER BY Vessels.vsl_name ; "
Set rst = v_db.OpenRecordset(strSQL)
...
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何使用SQLiteForExcel更改此代码,以便我可以访问SQLite数据库.

提前谢谢了

sqlite excel vba excel-vba

5
推荐指数
2
解决办法
2万
查看次数

如何在 Shell 中运行 SSH 以将值返回到 VBA 变量中?

我正在尝试运行 ssh 命令,并将输出捕获到 VBA 中的变量(使用 OpenSSH)。我可以让它在命令行中正常工作:

ssh user@ip python C:\Temp\Remote.py

结果是返回到命令行窗口的值列表。我想将其读入 VBA 变量。

我找到了这个这个这个。前两个似乎没有正确发送或接收命令,因为代码挂在 oShell.Exec(...) 上。外壳看起来正在执行,但它只是挂起。如果我关闭挂起的命令窗口,VBA 中的结果是空白的。

Dim sCmd As String
sCmd = "ssh user@ip python C:\Temp\Remote.py"

Dim oShell As Object
Set oShell = CreateObject("WScript.Shell")
Dim oExec As Object
Dim oOutput As Object
Set oExec = oShell.Exec(sCmd)
Set oOutput = oExec.StdOut

Dim s As String
Dim sLine As String

While Not oOutput.AtEndOfStream
    sLine = oOutput.ReadLine
    If sLine <> "" Then s = s & …
Run Code Online (Sandbox Code Playgroud)

ssh shell excel vba

4
推荐指数
1
解决办法
7533
查看次数

将结果从Python返回给Vba

我正在使用调用python脚本的VBA代码.我可以将参数发送到我的python脚本并使用它来读取它sys.argv[1].

在python代码中,我有一个函数,它接受给定的参数并返回一个值.

请问如何在VBA中获得返回值?

python vba

2
推荐指数
1
解决办法
3655
查看次数

标签 统计

vba ×4

excel ×3

shell ×2

batch-file ×1

excel-vba ×1

python ×1

sqlite ×1

ssh ×1