2016-06-27 3 views
1

Хорошо ... Думаю, мой мозг, наконец, отправился в отпуск без меня сегодня. Я извлек 2 поля с веб-сайта, и я получаю эту строкуАнализ стоимости валюты в Excel VBA

vData = "Amount Owed [EXTRACT]$125.00[EXTRACT] 

vData был объявлен как массив (строка).

Я разделил vData на [EXTRACT] и я в конечном итоге с 2 строковых переменных, как это:

varA = "Amount Owed" 
varB = "$125.00" 

Для разбора varB я использую

Dim varC as Currency 
varC = val(varB) 

Я хочу использовать varC в If заявлении:

If Val(VarC) <> 0 Then 

Я ожидал varC быть 125, но когда я смотрю на varC 0. Я не могу понять, почему varC = 0, а не 125.

ответ

1

Использование CCur(varB) вместо Val(varB). CCur конвертирует в Currency тип, поэтому знает о $ и прочего.

Объяснение от MS docs:

... при использовании CCur, различные десятичных разделителей, различные разделителей тысяч, а также различные валютные опционы распознаны в зависимости от настройки локала ваш компьютер.

Val является only looking for straight numbers:

Val функция прекращает чтение строки на первом знаке, он не может распознать как часть числа. Символы и символы, которые часто считаются частями числовых значений, таких как знаки доллара и запятые, не распознаются.

+0

@cxw .............. Спасибо за информацию и предложение. Я думаю, что использовал «val» в прошлом (без знака $), поэтому он, вероятно, дал мне номер, который я искал. – Shaves

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