Dim i As Integer
i = Int((8 - 2 + 1) * Rnd + 2)
Dim rg As String
Dim con As String
con = Str(i)
rg = "B" & con
MsgBox (rg)
Это возвращает «B 4» не «B4 кто знает проблемуStr добавляет дополнительное пространство
Dim i As Integer
i = Int((8 - 2 + 1) * Rnd + 2)
Dim rg As String
Dim con As String
con = Str(i)
rg = "B" & con
MsgBox (rg)
Это возвращает «B 4» не «B4 кто знает проблемуStr добавляет дополнительное пространство
На странице Помощи по Str()
Когда числа преобразуются в строки, ведущее пространство всегда зарезервировано для обозначения номера. Если число положительное, строка содержит ведущее место, и подразумевается знак плюса.
Str()
оставляет место для знака.
В Excel есть неявное преобразование, вы можете использовать rg = "B" & i
и получить диапазон, который вы хотите
EXcel Concatonate строки, основанную на междунар.
Вот Дайте описание
Использовать формат функции() ...
con = format(i)
rg = "B" & con
MsgBox (rg)
с помощью функции Обрезать удалить ведущее место как в:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i As Integer
i = Int((8 - 2 + 1) * Rnd + 2)
Dim rg As String
Dim con As String
con = Str(i)
rg = "B" & Trim(con)
MsgBox (rg)
End Sub
использования Cstr (i), а не Str (i) - Cstr не добавляет пробел
+1, Из различных предложений это самое простое. –
Обрезка исключает любую проблему с заголовком/окончанием пустого пространства (con = Trim (Str (i))). Я использую его всегда при работе со строками. На ваш вопрос ответили ниже, это всего лишь общая рекомендация :) – varocarbas