G'day,Ошибка выполнения при использовании варианта массива в Excel 2010 VBA
Я искал высоко и низко для решения этой проблемы, так что надеюсь, кто-то здесь будет знать, что происходит!
Код, который у меня есть, приведен ниже. Я понимаю, что мне нужно определить i и n как Long, поскольку они используют вариант массива? На данный момент я получаю «Ошибка выполнения„1004“: Application или объекта определенные ошибки» Ошибка после строки:
If Cells(i, m) < Cells(i, (m-1)) Then
Я попытался заменить я и м переменные целые числа, только для целей тестирования, но проблема сохраняется. Зная меня, я неправильно отложил: |
Option Explicit
Public Sub Show_Arrows()
Dim i As Integer
Dim n As Integer
Dim m As Integer
Dim Increasing() As Variant
Dim Decreasing() As Variant
Decreasing = Array(10, 11, 16, 17, 18, 19)
Increasing = Array(12, 13, 22, 25, 26, 31, 32, 36, 37, 38, 39, 40, 41, 44, 45, 46, 47, 50, 51, 52, 55, 58)
m = (Month(Date) - 4)
For i = LBound(Decreasing) To UBound(Decreasing)
Cells(i, 16).Select
If Cells(i, m) < Cells(i, (m - 1)) Then
ActiveSheet.Pictures.Insert("C:\Users\jamie.rosssmith\Documents\Visual Basic Programming\Arrows - Vanessa\Green.png").Select
ElseIf Cells(i, m) > Cells(i, (m - 1)) Then
ActiveSheet.Pictures.Insert("C:\Users\jamie.rosssmith\Documents\Visual Basic Programming\Arrows - Vanessa\Red.png").Select
End If
Next
For n = LBound(Increasing) To UBound(Increasing)
Cells(n, 16).Select
If Cells(n, m) > Cells(n, (m - 1)) Then
ActiveSheet.Pictures.Insert("C:\Users\jamie.rosssmith\Documents\Visual Basic Programming\Arrows - Vanessa\Green.png").Select
ElseIf Cells(n, m) < Cells(n, (m - 1)) Then
ActiveSheet.Pictures.Insert("C:\Users\jamie.rosssmith\Documents\Visual Basic Programming\Arrows - Vanessa\Red.png").Select
End If
Next
End Sub
Я не уверен, как вы даже дошли до этой строки, если вы не указали иначе, 'i' будет равно 0, поэтому' Cells (i, 16) 'даст ошибку 1004. Следует учитывать, что вы объявляете 'Increasing' и' Decreasing' как массивы 'Variants', когда вы действительно хотите, чтобы они просто были« Variants ». И, просто из любопытства, каков ваш план избежать ошибок времени выполнения в первые четыре месяца года :)? –
i начинается с нижней границы уменьшения, которая в этом случае равна 10, поэтому она не должна считаться 0? Я не думал так далеко, как первые четыре месяца в году ха-ха! Я адаптирую существующую таблицу для коллеги, и она до сентября, которая находится в столбце F ... – jars121
Lbound (Уменьшение) - 0. Уменьшение (0) равно 10. Вы должны сделать некоторое чтение об этом. Он окупится. –