Проблема несоответствия типов VBA - формула для значения - PullRequest
1 голос
/ 27 апреля 2020

У меня есть диапазон, который сначала заполняется формулой, затем я пытаюсь преобразовать ее в значение, а затем я использую sumifs диапазон, основанный на критериях. Однако в строке, где я использую Sumifs, я получаю

Ошибка несоответствия типов

. Я полагаю, что моя ошибка связана с изменением значения с формулы на значение. Однако я не могу использовать Select, Copy, PasteSpecial, так как у меня более 2084 строк. Я боролся в течение достаточно долгого времени. Есть предложения?

Dim DWR, MHR, P, D As Worksheet

Set DWR = Sheets("DWREP")
Set MHR = Sheets("MACH-HRS")
Set P = Sheets("PRODUCTION")
Set D = Sheets("DELAYS")
Dim planned_time, tech_time, lost_time, std_time As Long

Dim last_row, last_row1, last_row2 As Long
last_row = MHR.Cells(Rows.Count, 1).End(xlUp).Row
last_row1 = P.Cells(Rows.Count, 1).End(xlUp).Row
last_row2 = D.Cells(Rows.Count, 1).End(xlUp).Row
    If P.range("CC2").Formula = "" Then
    P.range("CC2").FormulaR1C1 = "=PRODUCTION!RC[-66]/VLOOKUP(PRODUCTION!RC[-76],STD!R3C1:R1030C17,17,FALSE)"

P.range("CC2").AutoFill Destination:=P.range("CC2:CC" & last_row1), Type:=4
P.range("CC2:CC" & last_row1).Font.Color = RGB(255, 255, 255)
With P
    With .range("CC2" & last_row1)
        .Value = .Value
    End With
End With
End If
std_time = Application.SumIfs(P.range("CC2:CC" & last_row1), P.range("A2:A" & last_row1), DWR.Cells(7, i), P.range("C2:C" & last_row1), DWR.range("B31"))

1 Ответ

0 голосов
/ 27 апреля 2020

вам не хватает столбца в вашем With блоке.

Изменение: .range("CC2" & last_row1)

Для: .range("CC2:CC" & last_row1)

...