gpt4 book ai didi

VB6 For Loop 在一个函数中不被接受,在另一个函数中工作正常

转载 作者:行者123 更新时间:2023-12-01 15:32:28 27 4
gpt4 key购买 nike

我有一个用 VB6 编写的旧 ActiveX 组件来支持(甚至不必费心要求对其进行现代化改造,这就是我目前拥有的)并且在编译以下代码时它会做一些奇怪的事情:

Dim connectedPrinter As printer
Dim printers() As String

For Each connectedPrinter In printers
printers(UBound(printers)) = connectedPrinter.DeviceName
Next

它应该做的就是列出所有已连接的打印机。但是,在编译时,VB6 告诉我

For Each control variable on arrays must be Variant

奇怪的是,在相同代码库的另一个函数中,我对不同的任务使用了完全相同的循环(将当前打印机设置为默认值)

Dim pPrinter As printer

For Each pPrinter In printers
If (pPrinter.DeviceName = sPrinterName) Then
Set printer = pPrinter
Exit For
End If
Next

然而,它被毫不犹豫地接受、编译并且在生产环境中也证明有效。

这是怎么回事?

最佳答案

在问题片段中,您有一个名为 printers 的本地数组,其中隐藏了 Printers 集合。您可以重命名本地数组,或通过将其引用为 VB.Printers 来限定对集合的访问。

关于VB6 For Loop 在一个函数中不被接受,在另一个函数中工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14956520/

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