Я написал небольшую программу для сканирования электронной таблицы и вычисления общего количества различных типов элементов на основе значения в столбце, а затем для печати результатов в указанных c местоположениях столбцов. Мой код ниже
Sub How_Many_items()
'define variables. A, B, C refer to letter coding. O is other. counter is for the count
Dim A As Integer
Dim B As Integer
Dim C As Integer
Dim O As Integer
Dim Sum As Integer
Dim Counter As Integer
'resetting variables
A = 0
B = 0
C = 0
O = 0
Sum = 0
Counter = 2
'do while loop to continue going down rows until out of new data
'if loops to accumulate values
Worksheets("Values").Select
Do While Worksheets("Values").Cells(Counter, 54) <> Empty
If Worksheets("Values").Cells(Counter, 54).Value = "A" Then
A = A + 1 And Sum = Sum + 1 And Counter = Counter + 1
ElseIf Worksheets("Values").Cells(Counter, 54).Value = "B" Then
B = B + 1 And Sum = Sum + 1 And Counter = Counter + 1
ElseIf Worksheets("Values").Cells(Counter, 54).Value = "C" Then
C = C + 1 And Sum = Sum + 1 And Counter = Counter + 1
ElseIf Worksheets("Values").Cells(Counter, 54).Value <> "A" Or "B" Or "C" Then
Sum = Sum + 1 And Counter = Counter + 1
End If
Loop
'print values in PivotTables worksheet
Worksheets(PivotTables).Cells(I, 20) = Sum
Worksheets(PivotTables).Cells(I, 21) = A
Worksheets(PivotTables).Cells(I, 22) = B
Worksheets(PivotTables).Cells(I, 23) = C
End Sub
Судя по просмотру другой информации на этом сайте, мне на самом деле не нужны рабочие листы (). Выберите действие, но я не думаю, что это останавливает программу.
При выполнении моей программы она останавливается в цикле; текущие используемые данные имеют «B» в первом интересующем столбце, но они никогда не увеличиваются до следующей строки, что заставляет меня думать, что по какой-то причине это фактически не добавляет к счетчику или к B. Столбец, который я сканирую, также является вычисляемым столбцом с использованием VLOOKUP, но я не знаю, влияет ли это на то, что я делаю. В листе Excel будет sh, если я попытаюсь запустить программу. Спасибо за любую помощь!