Я создаю программу, которая измеряет показатели деятельности и прогресса нашей компании, и у меня возникают проблемы с определенной частью.Я делаю это в VBA и хочу выполнить следующие действия:
1. Compare a range on two spreadsheets to find mismatches.
2. Calculate (not format) how many cells are different and then send that
resultant value a target cell on another spreadsheet in the workbook.
EX: If 2 out of 10 cells do not match then the target cell
value should be 2
3. Replicate this process for about 6 other parameters in the workbook
(That is the easy part I think).
Я использовал / дал следующие функции VBA, чтобы попытаться получить результат: WorksheetFunction.sum Evaulate (SumProduct)
Я не верю, что проблема заключается в самом коде сравнения (поскольку я только что позаимствовал некоторые примеры из Интернета, которые я видел). Но в функции, которая возникает после оператора Else.Код работает и отлаживается нормально, однако ответа не получается.Код ниже, сделайте предположения, что переменные объявлены (для целей космоса).
Worksheets("Generalized Report").Activate
strRangeToCheck = "F2:F10000" 'Range can change depending on amount of data on sheets'
varSheetA = Worksheets("Contract").Range(strRangeToCheck)
varSheetB = Worksheets("As Built").Range(strRangeToCheck)
'Loop thru and do the comparison cell by cell via an array
For iRow = LBound(varSheetA, 1) To UBound(varSheetA, 1)
For iCol = LBound(varSheetA, 2) To UBound(varSheetA, 2)
If varSheetA(iRow, iCol) = varSheetB(iRow, iCol) Then
' Cells are identical.
' Do nothing.
Else
' Cells are different.
' Calculate how many cells are different
Worksheet("Generalized Report").Activate
Worksheet("Generalized Report").Range("A8") = Evaluate("=SUMPRODUCT(--('Contract'!F2:F10000<>'As Built'!F2:F10000)")
В этом конкретном случае я ожидаю значение 0 (поскольку это тестовые данные), но значение должно равняться количеству ячеек, которые отличаются.Следующие 3 вещи происходят с моим кодом на основе моих настроек:
- Ответ не получен
#Value!
ошибка - Для уже назначенного
Спасибо за ваше время.