В модуле доступа VBA я копирую набор записей на рабочий лист Excel (DoCmd.TransferSpreadsheet не предоставляет необходимый формат форматирования и форматирования формул).Ссылка на другой рабочий лист в Формуле ячейки Excel через доступ VBA
В одном диапазоне столбцов, пытаясь применить INDEX/MATCH или VLOOKUP в c.Value или c.Formula, я не могу ссылаться на другой рабочий лист в той же рабочей книге, над которой я работаю. С каждым выходом из Access Excel отображает #REF! ошибка. Однако, когда я копирую и вставляю формулу из окна VBA в ячейку и перетаскиваю ее в Excel, она отлично работает! И когда я изменяю ссылку рабочего листа на то же имя листа, нет #REF! ошибка.
Я знаю, что проблема - это экземпляр рабочего листа объекта Excel. Я попытался открыть другой объект рабочего листа (объект xlInv) и использовать функцию Excel .Address, но он указывает только на диапазоны ячеек активного рабочего листа. Смотрите мой код ниже (как ВПР и матч индекс делает то же самое):
Public Function SendReq2Excel(strTQName As String, strSheetName As String)
Dim rst As DAO.Recordset
Dim ApXL, xlWBk, xlWsh, xlInv As Object
Dim fld As DAO.Field
Dim strPath, allsheet, mostsheet, subtotalcell, othersheet As String
Dim recordcount, avgprice, totalreq As Integer
On Error GoTo err_handler
strPath = Application.CurrentProject.Path & "\Requisition Form.xlsx"
Set rst = CurrentDb.OpenRecordset(strTQName)
Set ApXL = CreateObject("Excel.Application")
Set xlWBk = ApXL.Workbooks.Open(strPath)
ApXL.Visible = False
Set xlWsh = xlWBk.Worksheets(strSheetName)
Set xlInv = xlWBk.Worksheets("INVENTORY")
...
avgprice = 2
For Each c In xlWsh.Range("O2:O" & recordcount + 1)
'c.Formula VLOOKUP(C" & avgprice & ", INVENTORY!$B$2:INVENTORY!$X$2000, 23, FALSE)
c.Formula = "=INDEX(INVENTORY!$X$3:INVENTORY!$X$2000, MATCH(C" & avgprice & ", INVENTORY!$B$3:INVENTORY!$B$2000, 0))"
avgprice = avgprice + 1
Next
Должен ли я закрыть один объект электронной таблицы Excel и открыть другой, но как я могу взаимодействовать с обоими рабочими листами, в то же время? Должен ли я выбирать диапазон другой рабочей таблицы Excel до определения формулы? Пожалуйста помоги. Любые предложения приветствуются. Благодаря!