Как изменить код после записи макроса? - PullRequest
1 голос
/ 10 марта 2019

Я хочу использовать опцию «запись макроса», чтобы легко организовать файл данных. Например, я сохранил макрос и код был таким, как показано ниже:

ActiveCell.FormulaR1C1 = "=SUM(VolumeDat!R[3]C[1]:R[23]C[0])"
Range("B2").Select

Я хочу использовать его в коде и для других ячеек. И я скопировал их, и это сработало.

ActiveCell.FormulaR1C1 = "=SUM(VolumeDat!R[3]C[1]:R[23]C[0])"
Range("B2").Select
ActiveCell.FormulaR1C1 = "=SUM(VolumeDat!R[3]C[1]:R[22]C[1])"
Range("B3").Select

Проблема в том, что ActiveCell иногда использует код в неправильных ячейках. Я пытался изменить «ActiveCell» с номером ячейки, но не смог достичь этого.

1 Ответ

1 голос
/ 10 марта 2019

Возможно, вы не разместили здесь достаточно кода, чтобы дать вам прямой ответ для этого случая, но давайте предположим, что записанный код выглядит следующим образом:

 Range("B2").Select
 ActiveCell.FormulaR1C1 = "=SUM(VolumeDat!R[3]C[1]:R[23]C[0])"

тогда вы можете заменить его на

 Range("B2").FormulaR1C1 = "=SUM(VolumeDat!R[3]C[1]:R[23]C[0])"

Однако, поскольку Range("B2") по-прежнему является ярлыком для ActiveSheet.Range("B2"), я бы порекомендовал сначала иметь некоторый код для определения правильного рабочего листа, присвоив ему такую ​​переменную sh типа Worksheet,и затем напишите

 sh.Range("B2").FormulaR1C1 = "=SUM(VolumeDat!R[3]C[1]:R[23]C[0])"

Это сделает ваш код более устойчивым к изменению контекста листа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...