Vba 对象库未注册

Vba 对象库未注册,vba,excel,ms-access-2007,sharepoint-2007,excel-2007,Vba,Excel,Ms Access 2007,Sharepoint 2007,Excel 2007,我正在使用Access(2007)vba处理Sharepoint 2007文档库上的Excel(ACCDB)工作簿。在此过程中,我使用ExcelWB.ContentTypeProperties()属性更新了两个属性。多年来,它一直运转良好。今天,它停止了工作。它抛出“对象库未注册”错误。研究似乎表明我注册了一个旧的Excel DLL,而接口使用的是一个不支持该属性的旧DLL 我的库都找到了,上个月(我…)没有对机器进行任何更改。这是一台客户机,所以我不能为微软的更新等等说话。我怎样才能解决这个问

我正在使用Access(2007)vba处理Sharepoint 2007文档库上的Excel(ACCDB)工作簿。在此过程中,我使用ExcelWB.ContentTypeProperties()属性更新了两个属性。多年来,它一直运转良好。今天,它停止了工作。它抛出“对象库未注册”错误。研究似乎表明我注册了一个旧的Excel DLL,而接口使用的是一个不支持该属性的旧DLL

我的库都找到了,上个月(我…)没有对机器进行任何更改。这是一台客户机,所以我不能为微软的更新等等说话。我怎样才能解决这个问题?这让我的客户坐立不安,无法工作

Dim xlApp As Excel.Application
Dim xlWB As Excel.WorkBook
Dim xlSH As Excel.Worksheet
Dim xlRA As Excel.Range
Dim bValidWorkbook As Boolean
Dim lngTrueHighestRow As Long
Dim strWorkbookName As String

WorkbookMessage , 3                                   'Clears the message queue
bValidWorkbook = True
strNewTimesheetStatus = "Rejected"
Set xlApp = New Excel.Application
xlApp.visible = False                   'Don't let the workbook be shown
Set xlWB = xlApp.Workbooks.Open(URL)    'Open the workbook

lngCurrentVendorID = ParseVendor(strCurrentVendorName)         'Sets up the vendor recordset and the Labor rate Recordset. If it returns 0, it couldn't find the vendor
If lngCurrentVendorID = 0 Then
    bValidWorkbook = False
    WorkbookMessage "Workbook Rejected -- Vendor could not be validated"
    GoTo ExitWorkbook
End If
'
'   If the workbook is read-only, we can't proceed
'
If xlWB.ReadOnly Then
    bValidWorkbook = False
    WorkbookMessage "Workbook Rejected -- Workbook is read-only state"
    GoTo ExitWorkbook
End If

Set xlSH = xlWB.Worksheets(1)           'Must be the first worksheet in the workbook
strWorkbookName = xlWB.NAME

Set xlRA = xlSH.UsedRange               'xlRA is the range of cells in the first workbook that are "USED"
strSheetArray = xlRA                    'This sets an array of variants to the two dimensional range xlRA
xlRA.EntireRow.Hidden = False           'Unhides all rows to prevent misunderstandings.
。。。 ... ...


你能在错误发生的地方张贴具体的代码行吗?另外,如果您将ExcelWb的声明更改为
Set ExcelWb=CreateObject(“Excel.WorkBook”)
后期绑定可能会解决版本控制问题,但如果调用过多,可能会降低性能。如果不是xlWB.ReadOnly,则是xlWB.ContentTypeProperties(“TimesheetStatus”)=strValidateWorkbook xlWB.ContentTypeProperties(“OverrideStatus”)=strNewOverrideStatus xlWB.Save End如果此代码在一到两年内都能正常工作,则保存结束。突然坏了。我今天安装了Lync 2010……吉米,我会试试的。与此同时,我用一个巨大的雪橇把它撞死,然后让它开始工作。我收集了一组我处理过的项目,关闭了所有记录集,等等。分离并重新连接了表示库中项目的表,然后使用currentdb更新了相应的行。执行“Update….set….”它起作用了,但编程实践很差。。。。
If Not xlWB.ReadOnly Then
    xlWB.ContentTypeProperties("TimesheetStatus") = strValidateWorkbook***
    xlWB.ContentTypeProperties("OverrideStatus") = strNewOverrideStatus
    xlWB.Save 
End If