1

全部,

我最近构建了一个主要由 VBA 宏运行的工作表(内置于 Excel 2007)。此表单的功能之一是,当用户单击按钮时,它会运行一个宏,该宏会在表单中填充列表框,然后显示表单并允许他们执行与该列表相关的一些事情。

这个宏在我的电脑上运行良好,也适用于我在办公室测试过的 3 或 4 台其他用户的电脑。

但是,当位于波兰的用户尝试使用它时,他会收到“无法设置列表属性”。当他单击按钮时,键入不匹配错误。

他正在使用 Office 2010 Plus。我已经在我办公室的同事计算机上对此进行了测试,该计算机也使用 2010 并且运行良好。

收到错误的用户似乎使用的是波兰语版本的 excel,所以我不确定这是否会导致问题?以下是返回错误的代码:

Sub AccountAssignmentChange()
count = 0
AssignAccounts.ExecName.Caption = "Account Management for " _
    & ActiveSheet.Range("D4").Value
For i = 2 To 9
    If Not Sheet1.Cells(i, 33) = "" Then
        With AssignAccounts.RegionBox
            .AddItem
            .List(count) = Sheet1.Cells(i, 33)
            count = count + 1
        End With
    End If
Next
AssignAccounts.Show
End Sub

为澄清起见,Activesheet.Range("D4").value 是员工姓名。Sheet1.Cells(i,33)(用于 2 到 9)是一个包含填充到列表框中的区域名称的范围。

收到错误的员工可以访问一个区域(这意味着列表框应该填充一项)。我只更改了对该区域的访问权限,没有任何问题。对在我办公室使用 2010 的用户也这样做了,对他来说效果很好。

另外,这是员工发给我的错误截图。

有任何想法吗?因这个错误而迷失了方向。

编辑:我现在有一个(我假设)不相关的发展。此特定员工现在收到一条错误消息,指出“Microsoft Excel 正在等待另一个应用程序完成 OLE 操作”。

我也很困惑为什么会抛出这个错误。有关信息:有一个在工作簿打开时运行的宏,它会打开另一个位于共享驱动器上的工作表。共享驱动器已映射到该员工的计算机,因此这不是问题。

远程访问的工作簿是共享工作簿,因为多人可能同时使用此工作表。

此员工在宏尝试打开工作簿时收到 OLE 错误。当他点击“确定”时,通知会停留在那里并有效地挂起。

我不知道为什么会这样。我认为两个人同时尝试访问共享工作簿可能存在问题,但我与位于我办公室的几个同事对此进行了测试,并且没有问题。

对此有什么想法吗?这位特殊的员工遇到的问题完全让我难过。

4

1 回答 1

0

使用以下(已编辑)代码。您需要记住,ListBoxes 就像网格一样,.List 属性采用 Column 和 Row 参数...即 .List(1, 0)...

ALSO - 确保波兰的用户有参考(Microsoft Office 14.0 对象库)添加到他的工作簿...

Sub AccountAssignmentChange()
count = 0
AssignAccounts.ExecName.Caption = "Account Management for " _
    & ActiveSheet.Range("D4").Value
For i = 2 To 9
    If Not Sheet1.Cells(i, 33) = "" Then
        With AssignAccounts.RegionBox
            .AddItem 0 'Speficy the list reference (top) 
            .List(count, 0) = Sheet1.Cells(i, 33) 'Call the correct list...
            count = count + 1
        End With
    End If
Next
AssignAccounts.Show
End Sub
于 2013-09-03T22:24:01.260 回答