rg.NumberFormat = "0" показывает переменную объекта или с переменной блока не установлена ​​ошибка VBA - PullRequest
0 голосов
/ 25 июня 2018

Код:

Option Explicit

Sub LeadingZeros()
Dim cel As Range
Dim rg As Range
Dim mx As Integer: mx = 0
Dim cl As Variant
For Each cl In Selection
    If Len(cl) > mx Then mx = Len(cl)
Next

rg.NumberFormat = "0"   'this is showing error

Dim i As Integer
For i = 0 To mx - 2
    If mx = 1 Then Exit Sub
    rg.NumberFormat = rg.NumberFormat & "0"
Next
End Sub


Столбец Excel:
enter image description here

Это код для заполнения значенийв ячейках с ведущими нулями.Это сработало только один раз, но после этого не работает.Я не изменил код.
Ошибка:
enter image description here

1 Ответ

0 голосов
/ 25 июня 2018

Вы должны присвоить переменной rg диапазон.Это делается со словом Set.В этом примере rg назначен на A1:A5, и он работает дальше:

Sub LeadingZeros()
    Dim cel As Range
    Dim rg As Range
    Dim mx As Integer: mx = 0
    Dim cl As Variant
    For Each cl In Selection
        If Len(cl) > mx Then mx = Len(cl)
    Next

    Set rg = Range("A1:A5")
    rg.NumberFormat = "0"   'this is showing error

    Dim i As Integer
    For i = 0 To mx - 2
        If mx = 1 Then Exit Sub
        rg.NumberFormat = rg.NumberFormat & "0"
    Next
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...