我有一个 Access 数据库,它成功地将我当前记录中的值传递到 Excel 工作表。要计算我的 Excel 工作表,我需要调用一个子程序。
我认为我的问题是事情发生的顺序。
我尝试MyWorkbook
使用以下代码调用例程(在 Excel 中)
Private Sub Workbook_Activate()
On Error Resume Next
With Application
.DisplayFullScreen = True
.CommandBars("Worksheet Menu Bar").Enabled = True
.ScreenUpdating = False
End With
Call Rategenerator
Sheets("home").Select
End Sub
我认为,该例程Rategenerator
在 Access 记录中的值填充我的工作表“home”中的指定单元格之前被调用。
有没有办法Rategenerator
在工作表上填充值后强制执行子例程?
当前 Access 记录中用于填充 Excel 工作表的代码如下所示:
Dim objXLApp As Object
Dim objXLBook As Object
Dim r As Object
'check whether Excel is open before opening another copy.
Set objXLApp = CreateObject("Excel.Application")
Set objXLBook = objXLApp.Workbooks.Open("e:\!!!Access SHare Folder\Ogden v7.1.1.5 final.xls")
objXLApp.Application.Visible = True
'Specify Sheet
With objXLBook.Sheets("home")
.unProtect Password:="xxxxxxxx"
.Cells(15, 6).Value = Me.DateofAcc
.Cells(16, 6).Value = Me.DOB
.Cells(17, 6).Value = Me.todaysDate
.Cells(18, 6).Value = Me.Gender
.Cells(19, 6).Value = Me.RetireAge
.Cells(22, 6).Value = Me.DeferredAge
.Cells(28, 6).Value = Me.ContEmpPre
.Cells(29, 6).Value = Me.ContDisPre
.Cells(30, 6).Value = Me.txtContOveridePre 'taken from the txtbox not the checkbox
.Cells(31, 6).Value = Me.ContOverideValPre
.Cells(28, 7).Value = Me.ContEmpPost
.Cells(29, 7).Value = Me.ContDisPost
.Cells(30, 7).Value = Me.txtContOveridePost 'taken from the txtbox not the checkbox
.Cells(31, 7).Value = Me.ContOverideValPost
End With
With objXLBook.Sheets("LOETblCalx")
.Cells(19, 17).Value = Me.SalaryNet1
.Cells(20, 17).Value = Me.Residual1
End With
''Tidy up
Set objXLBook = Nothing
Set objXLApp = Nothing
End Sub
正如我所说,Access 记录中的所有字段值都会毫无问题地填充。Excel 工作簿的部分不依赖子例程自动计算,工作簿中的自动计算已打开。
它只是在填充单元格后触发子例程,这给我带来了一些困难。
最终,我想尝试将计算结果返回到 Access 记录中的一些其他字段中,但在我小心不要超越自己之前从未尝试过类似的事情。
感谢您的关注