vba数据库使用open函数,运行时提示至少一个参数没有被指定值,已经附

vba数据库使用open函数,运行时提示至少一个参数没有被指定值,已经附,第1张

使用open进行文件流 *** 作.

dim count as long

Dim Filt As String

Dim FilterIndex As Integer

Dim Title As String

Dim File As Variant

Dim fText As String

'创建文件筛选列表

Filt = "Text Files (*.txt),*.txt,"

'默认显示*.*

FilterIndex = 1

'设置对话框标题

Title = "打开文本文件"

'获取文件路径以及文件名

File = Application.GetOpenFilename _

(FileFilter:=Filt, _

FilterIndex:=FilterIndex, _

Title:=Title)

'如果取消对话框则退出

If File = False Then

MsgBox "您未选择文件"

Exit Sub

End If

'excel获取文本数据

Open File For Input As #1

count = 0

Do While Not EOF(1)

count = count + 1

Line Input #1, fText

Worksheets("Sheet1").Cells(count, 1).Value = fText

Loop

Close #1

不能的,在 VB 中 Open 只能是关键字,

在调用时如果某一过程名不符合 VB 的要求,则需要在其两侧加方括号

Dim MyCollection As New Collection

Dim NextEnum As Object

Set NextEnum = MyCollection.[_NewEnum]

照理说,与关键字可能发生冲突,也需要加方括号,

但我试了一下,实际不用。

可是,如果在声明一个不符合 VB 的要求的过程名称时,

加方括号却遇到了问题:

Public Sub [Open]() '编译错误

因此 VB 6.0(或是 VBA 6.0)是不支持声明不符合要求的过程名称的。

但在 VB.NET 中是可以的(虽然这么做不被推荐),例如:

Public Sub [Sub]()

Public Function [Property]() As Object

Dim [___] As Long

不过目前还没有见到 VB.NET 取代 VBA 的位置。

除过在 Office 2010 的 InfoPath 中的代码可以在 VB.NET 环境中编辑以外,

甚至 Office 2010 的 Word 还在用 VBA 6.0……

而至于人家 Workbooks,

因为人家用的不是 VB,而是 C,

因此没有这么严格的限制。

所以只能将就一下了……

起个 OpenWorkbook 或是 OpenSheet 之类的,

只要避开关键字就行……


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6693538.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存