Я выбрал другой подход к рабочему проекту и врезался в стену.Я отправил в Google все, что могу придумать, и проверил несколько форумов, прежде чем вернуться в SO, чтобы попросить о помощи.У меня есть форма в Access, которая позволяет пользователям вводить комбинацию клиент / подразделение, проверяет, существует ли существующий путь к файлу для этого клиента, затем открывает файлы шаблонов Excel и сохраняет их в нужную папку с именем конкретного клиента.Кажется, все это работает нормально.Вот та часть, которая полностью меня озадачила.Следующей частью этого будет открытие двух из файлов Excel, присваивающих файлы Workbooks как переменные xlWB1 и xlWB2 и Worksheets как xlWS1 и xlWS2 (Sheet1).Мне нужно начать с xlWB1.xlWS1. (Ячейка D2) и выполнить VLookup для значения (номера элемента) этой ячейки против значений ячеек в диапазоне xlWB2.xlWS2.Range (D2: D1937).Я надеялся подсчитать общее количество строк в каждом рабочем листе перед запуском VLookup, чтобы я мог присвоить это значение переменной и использовать эту переменную для определения нижней части диапазона.Я собираюсь заранее извиниться, если ответ на этот вопрос прост.Я никогда не пытался выполнять какие-либо операции в Excel из Access с использованием VBA, поэтому я также борюсь с синтаксисом.Пожалуйста, дайте мне знать, если мой вопрос не ясен или есть какая-либо дополнительная информация, которая вам нужна.Я вставил свой стартовый код ниже.
ОБНОВЛЕННЫЙ КОД В СЛУЧАЕ, КАКОЙ-ЛИБО НУЖНО ИСПОЛЬЗОВАТЬ ЕГО!СПАСИБО ВСЕМ ЗА ПОМОЩЬ !!
Sub modExcel_SixMonth()
Const WB_PATH As String = "\\FMI-FS\Users\sharp-c\Desktop\TestDir\"
Dim xlApp As Excel.Application
Dim xlWB As Excel.Workbook
Dim xlWS As Excel.Worksheet
Dim xlRng As Excel.Range
Dim rCount As Long
Dim xlWB2 As Excel.Workbook
Dim xlWS2 As Excel.Worksheet
Dim rCount2 As Long
Dim sFormula As String
Dim i As Long
Dim xlSheetName As String
Dim bolIsExcelRunning As Boolean
On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
Set xlApp = CreateObject("Excel.Application")
Else
bolIsExcelRunning = True
End If
xlApp.Visible = False
Set xlWB = xlApp.Workbooks.Open(WB_PATH & "acct 900860 Kentucky RSTS.xlsx")
Set xlWS = xlWB.Sheets(1)
Set xlWB2 = xlApp.Workbooks.Open(WB_PATH & "acct 900860 six months.xlsx")
Set xlWS2 = xlWB2.Sheets(1)
xlSheetName = xlWS2.Name
' rCount: RSTS Row Count
rCount = xlWS.Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count
Debug.Print "rCount : " & rCount
' rCount2: 6 Months Row Count
rCount2 = xlWS2.Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count
Debug.Print "rCount2 : " & rCount2
xlWS.Activate
With xlWS
For i = 2 To rCount
sFormula = "=VLOOKUP(C" & i & ", '" & WB_PATH & "[" & "acct 900860 six months.xlsx" & "]" & _
xlSheetName & "'!$D$2:$D$" & rCount2 & ", 1, 0)"
Debug.Print sFormula
.Range("D" & i).Formula = sFormula
DoEvents
Next
End With
xlWB.Save
xlWB2.Close False 'Closes WB Without Saving Changes
Set xlWB2 = Nothing
Set xlWS = Nothing
xlWB.Close
Set xlWB = Nothing
If Not bolIsExcelRunning Then
xlApp.Quit
End If
Set xlApp = Nothing
End Sub