Vba 在受保护的共享Excel工作簿中打开字段
我有一个共享的、受保护的工作簿,它有一个打开搜索表单的按钮。这个表单上有两个字段,txtYear和cbxRegion,我需要启用它们。每当我尝试打开字段时,它都会一直工作,直到我退出Excel 我尝试过取消工作簿的保护,取消共享工作簿,并注释掉VBA中的任何引用,以重新保护表单。尽管如此,即使编辑过的VBA也会恢复到原始版本 这是我需要启用的表单的代码部分。如蒙协助,将不胜感激。我正在使用Excel 2010Vba 在受保护的共享Excel工作簿中打开字段,vba,excel,excel-2010,Vba,Excel,Excel 2010,我有一个共享的、受保护的工作簿,它有一个打开搜索表单的按钮。这个表单上有两个字段,txtYear和cbxRegion,我需要启用它们。每当我尝试打开字段时,它都会一直工作,直到我退出Excel 我尝试过取消工作簿的保护,取消共享工作簿,并注释掉VBA中的任何引用,以重新保护表单。尽管如此,即使编辑过的VBA也会恢复到原始版本 这是我需要启用的表单的代码部分。如蒙协助,将不胜感激。我正在使用Excel 2010 Private Sub UserForm_Initialize() Dim strD
Private Sub UserForm_Initialize()
Dim strDb As String
Dim rs As ADODB.Recordset
Dim cn As ADODB.Connection
Dim row As Integer
Dim AccessVersionID As String
cbxRegion.Value = Worksheets("Parameters").Cells(5, 14)
Me.txtYear = Worksheets("Parameters").Cells(4, 7)
Me.chkBoth = Worksheets("Parameters").Cells(9, 2)
Me.chkConsultant = Worksheets("Parameters").Cells(7, 2)
Me.chkInHouse = Worksheets("Parameters").Cells(8, 2)
'Set region values
'Open connection
'Select Case SysCmd(acSysCmdAccessVer)
'Case 11: AccessVersionID = "2003"
'End Select
'If AccessVersionID = "2003" Then
' strDb = Worksheets("Parameters").Cells(17, 2).Value 'This will reference the path
'Else
strDb = Worksheets("Parameters").Cells(18, 2).Value
'End If
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & strDb & ";"
Set rs = New ADODB.Recordset
'Get recordset
With rs
Set .ActiveConnection = cn
.Open "Select * From LookupRegion"
.Requery
End With
'Add regions
row = 0
With rs
.MoveFirst
Do Until .EOF
cbxRegion.AddItem ![region]
cbxRegion.list(row, 1) = ![RegionName]
row = row + 1
.MoveNext
Loop
End With
'Close the recordset
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
就我而言,对于共享工作簿,任何人都能给你的最好建议是:不要使用它们 共享工作簿不可能排除故障。他们的反常行为无法纠正。他们不遵循任何逻辑。一旦共享工作簿开始出现异常行为,您就进入了不可避免的结束阶段。没有办法解决它。这种行为不一定是可复制的 如果需要同时对数据集进行多用户写入访问,则Excel是错误的工具。使用数据库
不要使用共享工作簿 我设法让它工作起来了。为此,我:
- 取消共享工作簿
- 取消工作簿的保护
- 保存、关闭并重新打开工作簿,以确保设置保持不变
- 启用字段
- 保存、关闭并重新打开工作簿,以确保设置保持不变
- 保护工作簿
- 共享工作簿(根据我收到的规范要求,我不想共享它,但这并不是我的要求)
- 保存、关闭并重新打开工作簿,以确保设置保持不变
现在它完全按照我的需要工作 虽然我很感激你的建议,但这并没有让我更接近解决问题的方法,因为即使在我取消共享工作簿之后,我仍然有这个问题。你似乎不明白。无法对显示任何类型问题的共享工作簿进行故障排除。这是主要问题,也是不使用共享工作簿的原因。您的文件已损坏。而且它将继续腐败,不管你现在是否取消共享它。你将无法修复它。修复数据并构建新的解决方案。如果您从这次经历中学到了一些东西,那么您可能更愿意构建一个不涉及共享工作簿的解决方案。事实上,我很容易就解决了这个问题。它只是必须按照特定的顺序来完成,现在它工作得非常完美,并且做了我需要它做的事情。