Переменная всегда равна нулю - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь присвоить переменную значению ячейки, но по какой-то причине я всегда получаю ноль.

Sheets(3).Activate

RowNo = 30
ColNo = 2

EU1 = Range(Cells(RowNo, ColNo).Address()).Value

MsgBox EU1

Проверьте изображение на адрес и значение ячейки

Причина, по которой я использую Range(Cells(RowNo, ColNo)), заключается в том, что у меня есть таблица, в которую я должен зацикливаться, чтобы проверить дату, если она равна сегодняшнему (или меньше, чем сегодня), переменная EU1 будет обновлена.

1 Ответ

0 голосов
/ 21 января 2019

Возвращаемое значение

Несколько советов

  • Если у вас есть значения, которые не изменятся, используйте константы (Const).
  • Объявите другие переменные сDim.
  • В начале каждого модуля всегда используйте Option Explicit, поэтому VBA предупредит вас, если переменные не объявлены (Dim или Const ... на данный момент).
  • Для объектов (рабочие листы, рабочие книги, диапазоны) необходимо использовать оператор Set.

Код

Option Explicit

Sub ReturnValue()

    Const cSheet As String = "Sheet3"
    Const cRow As Long = 30
    Const cCol As Long = 2

    Dim ws As Worksheet
    Dim EU1 As Double

    Set ws = ThisWorkbook.Worksheets(cSheet)

    EU1 = ws.Cells(cRow, cCol).Value

    MsgBox EU1

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