Установка листа и ячейки как переменной - PullRequest
5 голосов
/ 28 марта 2012

Я новичок в кодировании VBA. Допустим, я получаю значение из Sheet3.Cell (23, 4) для значения, есть ли способ в коде VBA, который позволяет мне установить это как переменную?

Например, я изменил интерфейс и оставил значение в Sheet4.Cell (20,1), везде в моем коде, который ссылается на Sheet3.Cell (23, 4), необходимо изменить на Sheet4.Cell ( 20, 1). Я думаю, есть ли лучшая практика для кодирования VBA для такой ситуации?

Ответы [ 2 ]

7 голосов
/ 28 марта 2012

Да.Для этого убедитесь, что вы объявляете лист

Например,

Предыдущий код

Sub Sample()
    Dim ws As Worksheet

    Set ws = Sheets("Sheet3")

    Debug.Print ws.Cells(23, 4).Value
End Sub

Новый код

Sub Sample()
    Dim ws As Worksheet

    Set ws = Sheets("Sheet4")

    Debug.Print ws.Cells(23, 4).Value
End Sub
5 голосов
/ 28 марта 2012

Да, установите ячейку как объект RANGE один раз, а затем используйте этот объект RANGE в своем коде:

Sub RangeExample()
Dim MyRNG As Range

Set MyRNG = Sheets("Sheet1").Cells(23, 4)

Debug.Print MyRNG.Value

End Sub

В качестве альтернативы вы можете просто сохранить значение этой ячейки в памяти и сослаться на фактическое значениеЕсли это все, что вам действительно нужно.Эта переменная может быть Long или Double или Single, если числовой, или String:

Sub ValueExample()
Dim MyVal As String

MyVal = Sheets("Sheet1").Cells(23, 4).Value

Debug.Print MyVal

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