Я пытаюсь просмотреть список транзакций и тэгов, связанных с определенными кодами счетов. Например, код учетной записи 123 будет помечен как стоимость «Аппаратное / программное обеспечение». Сначала я создал код, который просматривал книгу, читая каждую ячейку (очень ленивое решение). Этот процесс занял ~ 12-17 минут, чтобы пометить все расходы в бухгалтерской книге. Сейчас я пытаюсь реализовать решение для массива, чтобы пометить все затраты, прочитав коды счетов через один массив, а затем пометить затраты в другом массиве, если он соответствует требованиям оператора If / Then.
Приведенный ниже код циклически перебирает коды счетов и помечает затраты «разное», «оборудование» и «не расходы».
Как я могу заставить код работать так, чтобы я мог пройти через серию операторов If / Then с кодом учетной записи, чтобы задать тегирование на основе того, что код учетной записи? Я продолжаю получать сообщение об ошибке («индекс массива вне диапазона»), когда пытаюсь назначить тег «Not Expense» во втором операторе If / Then в приведенном ниже коде:
Sub arrayTest()
Dim arTesting() As Variant
Dim arTag1(1 To 1550) As Variant 'this is just a test range
Dim arTag2(1 To 1550) As Variant 'this is just a test range
Dim rng, cell As Range
Dim HWSWTag, miscTag, notExpenseTag As String
Dim x As Integer
Set rng = Range("G2:G1551")
miscTag = "Misc"
HWSWTag = "HW/SW"
notExpenseTag = "Not Expense"
x = 1
'Read in the range of account codes
For Each cell In rng
ReDim Preserve arTesting(x)
arTesting(x) = cell.Value
x = x + 1
Next cell
'Now tag the costs to arTag1 and arTag2
Dim i As Long
i = 1
For i = LBound(arTesting) To UBound(arTesting)
If arTesting(i) = 716 Then
arTag1(i) = miscTag
arTag2(i) = HWSWTag
End If
If arTesting(i) = 182 Or 160 Or 250 Or 258 Or 180 Then
arTag1(i) = notExpenseTag 'This is where I get the error
End If
'Debug.Print arTesting(i)
Next i
'Now paste the tags into the worksheet
Range("AL2:AL1551").Value = WorksheetFunction.Transpose(arTag1)
Range("AM2:AM1551").Value = WorksheetFunction.Transpose(arTag2)
End Sub
Я ожидаю, что выходные данные помечают все затраты с кодом счета «716» как «misc» и «HW / SW», а метки затрат - с кодом счета «182», «160», «250», «258», «180» как «не за счет»
Надеюсь, этот код поможет, так как он является небольшой частью общего кода, который прочесывает множество других кодов учетных записей.