【发布时间】:2019-02-21 14:21:46
【问题描述】:
首先让我说我不知道我在做什么......所以我已经外包了一家公司用 C# 编写代码,它试图监视一些文件夹,当出现新文件时,它会输入文件将路径作为字符串转换为 excel VBA 代码。所以这是我的问题。假设文件路径是“D:\testFile”,下面的代码可以工作:
Sub test5(Path As String)
MsgBox Path, vbInformation
End Sub
它显示一个显示 D:\testFile 的消息框,下面的代码有效:
Sub test1()
Workbooks.Open Filename:="D:\testFile"
End Sub
它打开文件。当然,这也有效:
Sub test2()
Path = "D:\testFile"
Workbooks.Open Filename:=Path
End Sub
当然这是可行的:
Sub test3()
Path = "D:\testFile"
X = Path
Workbooks.Open Filename:=X
End Sub
但是,此代码不起作用:
Sub test4(Path As String)
X = Path
Workbooks.Open Filename:=X
End Sub
我认为值得注意的是,下面的代码也不起作用。
Sub test6(Path As String)
MsgBox Path, vbInformation
Workbooks.Open Filename:="D:\testFile"
End Sub
它显示 MsgBox 但不打开 testFile...注意打开测试文件的行没有从 C# 接收任何类型的输入...所以如果带有消息框的行有效...所以应该打开线......所以......基本上......我如何让测试#4工作?请参阅下面的测试#4:
Sub test4(Path As String)
X = Path
Workbooks.Open Filename:=X
End Sub
我的想法是从 C# 程序输入的字符串不好……但这似乎不会导致测试 #6 不起作用。此外,excel vba 代码保存在一个模块中。但是 C# 代码是使用工作表中的测试 excel VBA 文件设置的。所以我将这些代码保存在一张表中以复制他的测试文件(即...右键单击 Sheet1 并查看代码)。我的理解是这不是好的做法,最终产品需要在模块中包含 excel VBA 代码。 (只是提到它以防它与为什么这可能不起作用有关)另外,值得一提的是,这个外部编码器测试的唯一东西是一个消息框......当然和我发现的一样...... .
【问题讨论】:
-
你有C#代码吗?如果有,请发帖。
-
我知道...但是...我不确定它的确切位置或如何打开它...压缩文件夹中有很多东西...我打开了压缩文件文件夹并单击 setup.exe ...这就是我所做的一切。这些是文件夹:.git、应用程序文件、ConsoleApp1、示例文件和包。每个都包含几个文件和文件夹。此外,在顶层有一些文件不在文件夹中。它们是:setup.exe、autorun.inf、FileWatcher.application、FileWatcher.docx、fileWatcher.sln