2013-08-01 3 views
2
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 добавляет дополнительное пространство

+0

Обрезка исключает любую проблему с заголовком/окончанием пустого пространства (con = Trim (Str (i))). Я использую его всегда при работе со строками. На ваш вопрос ответили ниже, это всего лишь общая рекомендация :) – varocarbas

ответ

5

На странице Помощи по Str()

Когда числа преобразуются в строки, ведущее пространство всегда зарезервировано для обозначения номера. Если число положительное, строка содержит ведущее место, и подразумевается знак плюса.

2

Str() оставляет место для знака.

В Excel есть неявное преобразование, вы можете использовать rg = "B" & i и получить диапазон, который вы хотите

1

Использовать формат функции() ...

con = format(i) 

rg = "B" & con 
MsgBox (rg) 
0

с помощью функции Обрезать удалить ведущее место как в:

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 
7

использования Cstr (i), а не Str (i) - Cstr не добавляет пробел

+1

+1, Из различных предложений это самое простое. –

Смежные вопросы