2016-03-23 3 views
0

Я пытаюсь использовать выбор пользователя, чтобы изменить формат номера столбца внутри этого выбора. Формат числа, который я пытаюсь изменить, это «Учет». Код, который я попробовал, приведен ниже.Как изменить формат номера столбца в vba

Dim r As Range 
Dim s As String 
s = Selection.Address(ReferenceStyle:=xlA1, RowAbsolute:=False, ColumnAbsolute:=False) 
r = Range(s).Columns("G") 
r.NumberFormat = "$#,##0.00" 

Я точно знаю, что String s получает правильное строковое значение выбора пользователя. Получение диапазона только столбца G является тем, что кажется неправильным.

+0

вы всегда хотите отформатировать столбец 'G' (абсолютный столбец G) или вы хотите форматировать' 7th' колонки от выбора пользователя, или вы хотите отформатировать весь столбец выбора пользователя? –

+0

Пользователь должен выбрать столбцы A: n через N: n, я хочу, чтобы в этом выборе был выбран только столбец G: n. Так что это похоже на диапазон внутри выбранной области, который мне нужно изменить. Следует отметить, что значение диапазона r ничего не значит, когда оно выполняется. –

+0

в порядке, так что это 7-й столбец слева от большинства столбцов, выбранных в диапазоне? (столбец G - 7 столбцов из столбца A в электронной таблице)? –

ответ

2

Попробуйте это:

Dim rSel As Range, rCol As Range 

Set r = Selection 
If r.Columns.Count > 6 Then 'make sure there are even 7 columns 

    Set rCol = r.Columns(7) 'Columns("G") 
    rCol.NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)" 

End If 
+0

Он не работает. rCol получает правильный столбец (столбец 7 или «G» в моем случае), но формат номера по-прежнему остается неизменным (это валюта). –

+0

@BrettComardelle - Я использовал «NumberFormat», который вы указали в своем исходном вопросе. для получения формата учета см. мой отредактированный ответ для используемого формата. –

+0

Формат по-прежнему остается валютой. –

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