Я довольно новичок в vba и имею довольно простую проблему. Может кто-то пожалуйста, помогите:Выбор последней строки, диапазона, vba
Вместо того, чтобы выбрать конкретную ячейку, я хочу, чтобы мой VBA макрос, чтобы перейти к нижней части колонны интереса, пропустить, и две ячейки ниже этого выполните следующие действия:
Range("W72").Select
Selection.NumberFormat = "General"
ActiveCell.FormulaR1C1 = "Null_value"
Range("X72").Select
Selection.NumberFormat = "General"
ActiveCell.FormulaR1C1 = "=R[-2]C[1]-SUM(R[-2]C[-8]:R[-2]C[-6])"
Как вы можете видеть, приведенный выше код относится к конкретным ячейкам W72 и X72. В настоящее время последняя запись в этих столбцах находится в W70 и X70, но в следующем месяце мой набор данных будет больше, поэтому W72 и X72 не являются подходящими местами для выполнения вышеуказанных действий. Как я могу исправить это, так что мой код vba автоматически переходит к нижней части W (n): X (n), пропускает одну строку и в W (n + 2), X (n + 2) выполняет код выше ,
Кроме того, моя формула выше (ActiveCell.FormulaR1C1) также относится к конкретным ячейкам, в моем случае Row 70 несколько столбцов слева, но, как вы, вероятно, говорите, это тоже имеет ту же проблему, поскольку строка, ссылающаяся на изменения каждого месяц. Мне нужно, чтобы моя vba получила формулу, которая отображает последнюю строку этих столбцов, столбцы P, Q, R.
Спасибо за любую помощь, которую вы можете предоставить.
Обновление: часть моего же рабочего проекта, я был бы очень признателен, если кто-то может помочь в этом. Спасибо:
Привет всем,
Я в настоящее время есть поле ввода для переменной, которая изменяет everymonth:
r_mo = Application.InputBox (подсказка: = "Введите отчетный месяц, как YYYYMM (например: 201604). Ошибки в этой записи приведут к ошибкам в результатах. »)
Это окно ввода ввода, в которое нужно вручную войти ... Однако я хочу автоматизировать этот процесс и устранить необходимость в поле ввода. Не существует ли теперь функции vba, которая автоматически генерирует сегодняшнюю дату.
От теперь или системной функции все, что я хочу сделать, это извлечь год в четыре цифры и месяц в две цифры.
Так, например, если мы находимся в decemeber 2016
Sub asasdas()
"Теперь работать" r_mo = ГГГГММ 'автоматически обновляется из "теперь работают"
End Sub
Я ценю любую помощь, которую вы можете мне дать, и большое спасибо.
Дэйв дал вам хороший ответ ниже. Тем не менее, дополнительный наконечник, который поможет вам хорошо зарекомендовать себя в VBA: почти никогда не нужно выбирать ячейки с кодом. Вместо «Range» (...) выберите «, а затем« Selection.NumberFormat = ... »- вы можете просто сказать« Range (...). NumberFormat = ... ». Вы узнаете, как использовать «Выбрать» для просмотра вывода макрорекордера. Вот как все учатся :) Но следующая вещь, которую они изучают, заключается в том, что, когда вы сами пишете код, вы можете просто выполнять соответствующие операции непосредственно на ячейках без выбора. Удачи! –