#excel #vba
#excel #vba
Вопрос:
Привет, я пишу код Excel VBA. Я просто хотел сделать вычитание для такого типа таблицы
Но я не могу понять, как это сделать с помощью VBA. Правильный ли приведенный ниже код?
Sub OperationO()
Dim OE As Integer
Dim i As Integer
For i = 3 To Range("F6")
Cells(6, i).Value = Cells(2, i).Value - Cells(4, i)
Next i
End Sub
Ответ №1:
Вам действительно следует использовать формулы для чего-то подобного, но если вы настаиваете на VBA, то вот оно.
Всякий раз, когда вы пишете код для VBA или любых похожих языков, прочитайте, что вы пишете, что он должен / needs делать, поскольку при многократном чтении вслух всплывают ошибки. Думайте о комментариях ниже как «я читаю, когда пишу».
Sub OperationO()
'Initiate a Variable type Integer for number storage
Dim OE as Integer
'Initiate another variable same type to use in the loop
Dim i as Integer
'Start a loop from 3 to 6 (because these are the columns you are working with)
For i = 3 to 6
'Set the value in Column "i" on Row 6 to the value in Row 2 minus Row 4 in the same column
'Now here is the thing, when you subtract a negative number, you are adding it, crazy math rules i know, so if the number is negative, you need to Add instead.
Cells(6, i).Value = (Cells(2, i).Value Cells(4, i).Value)
'If both cells don't contain a number, this will fail, additional checks may help, like IsNumber
Next i
'Its the end of the Sub and you never used the Variable OE, it was declared for nothing.
End Sub
Комментарии:
1. Большое спасибо за ваш добрый совет и решение!