Я пишу код VBA в Excel, чтобы изменить значение определенного столбца:Excel VBA код, чтобы отрицать значения
- Если клетку C (я) является «Дебет» многосвязность количества в клетке B (i) на -1
- в противном случае ничего не делать!
Ниже мой код, но, к сожалению, она не работает :(
Private Sub Calc()
For Each transType In Worksheets("Sheet2").Range("C4", "C100")
myRow = transType.Row
oldAmount = Worksheets("Sheet2").Range("B" & myRow)
If transType.Value = "D" Then
newAmount.Value = oldAmount.Value * -1
Else:
newAmount = oldAmount
End If
Cells(myRow, "B").Value = newAmount
Next transType
End Sub
вещи, которые нужно высматривать: 1. определить типы переменных. Я довольно уверен, что ваш VBE не знал, что вы считаете «transType» «диапазоном»; 2. Не ссылайтесь на свойства неопределенных переменных. Если переменная определена, '.', написанная после имени переменной, позволит вам выбрать из списка, если она не отображается, вы ошибаетесь. 3. Удалите ненужные шаги, указав новое значение равным старому значению. Продолжайте, хотя, вы будете писать удивительные подводные лодки в кратчайшие сроки. – user3819867
Согласно вашему описанию, вы хотите сравнить столбец C с * Debit *, но ваш код сравнивает его с * D *. Если вы используете 'If Left (transType.Value, 1) =" D "Then'? – Jeeped
@ Jeeped Извините за смешение в моих камерах, у меня было «D». Когда я писал здесь, я написал «Debit», чтобы сделать его более понятным. Ура! –