Я могу заставить работать первую функцию Evaluate.Но не второй.Это выдает «Ошибка 2015» во второй Evaluate для strBulkBP.Выход первого передается второй функции.Пожалуйста, помогите исправить код.Спасибо.
Sub test1()
Dim strBulkNum as Variant
Dim strBulkBP As Variant
Set wksh3 = Workbooks("Master - Data.xlsx").Sheets("Data")
Set wksh4 = Workbooks("Warranty_Analysis.xlsm").Sheets("TTX-OWNER_data")
Set rngBulkNum = wksh3.Range("BulkNum") 'column A:A
Set rngRefNum = wksh3.Range("RefNum") 'column N:N
Set rngBPNum = wksh4.Range("BPNum") 'column A:A
Set rngBPBulkNum = wksh4.Range("BPBulkNum") 'column E:E
strRefNum = "ES80381"
' The code below works to give a value for strBulkNum = "MX12049"
strBulkNum = Evaluate("=IFERROR(INDEX('[Master - Data.xlsx]Data'!" & rngBulkNum.Address(False, True) & ", SMALL(IF('[Master - Data.xlsx]Data'!" & rngRefNum.Address(False, True) & "=""" & strRefNum & """, ROW('[Master - Data.xlsx]Data'!" & rngRefNum.Address(False, True) & "))," & 2 & ")),"""")")
' The code below does not work. Gives "Error 2015" for strBulkBP
strBulkBP = Evaluate("=IFERROR(INDEX('[Warranty_Analysis.xlsm]TTX-OWNER_data'!" & rngBPNum.Address(False, True) & ", SMALL(IF('[Warranty_Analysis.xlsm]TTX-OWNER_data'!" & rngBPBulkNum.Address(False, True) & "=""" & strBulkNum & """,ROW('[Warranty_Analysis.xlsm]TTX-OWNER_data'!" & rngBPBulkNum.Address(False, True) & "))," & 2 & ")),"""")")
'The below code works - using helper cells & then populating the variable
Set wkshCal = ThisWorkbook.Sheets("Calculation")
Dim FormulaPart1 As String
Dim FormulaPart2 As String
wkshCal.Range("A1") = strBulkNum
FormulaPart1 = "=IFERROR(INDEX('[Warranty_Analysis.xlsm]TTX-OWNER_data'!$A:$A, xxx()),"""")"
FormulaPart2 = "SMALL(IF('[Warranty_Analysis.xlsm]TTX-OWNER_data'!$E:$E = $A$1, ROW('[Warranty_Analysis.xlsm]TTX-OWNER_data'!$E:$E)), 1)"
With wkshCal.Range("B1")
.FormulaArray = FormulaPart1
.Replace "xxx()", FormulaPart2
End With
strBulkBP = Range("B1")
End Sub