2013-03-28 5 views
0

Использование Excel макросов:отображаемый формат отличается от значения

Я пытаюсь создать функцию, которая принимает двойной под названием ноги и еще называемые дюймов и он возвращает общее количество дюймов. Это легкая часть. Я хочу, чтобы затем отобразить информацию в ячейке следующим образом:

5ft 8in

Вот код, который я придумал:

Function FTIN(Feet As Double, Inches As Double) As Double 
    'This part works fine. 
    Dim total As Double 

    total = (Feet * 12) + Inches 

    FTIN = total 

    'this part does not seem to work. 
    Dim foot As Double 
    Dim inch As Double 

    foot = WorksheetFunction.RoundDown(total/12, 0) 
    inch = total - (foot * 12) 

    result = foot & "ft " & inch & "in" 
End Function 

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

Я в основном хочу, чтобы он делал то же самое, что и даты, когда значение равно 41361, но отображается «3/28/2013».

Также я знаю, что могу сделать значение как 508, и я могу сделать пользовательский формат 0 "ft" 00 "in", но это не даст мне значения, с которым я могу работать.

Пожалуйста, помогите мне с этим.

ответ

0

Я не думаю, что вы можете настроить форматирование так, как хотите. Я бы рекомендовал сделать вторую функцию, которая возвращает строку. Вставьте ножки и дюймы в эту новую функцию, добавьте текст для «ft» и «in» и соедините все это вместе (используя оператор &).

+0

Не могли бы вы привести мне пример? Я думаю, что вы говорите, это изменить его на FTIN = foot & "ft" & inch & "in". Если это так не сработает. Мне нужно иметь возможность использовать значения как числа, а не строки. – Makai

+0

На самом деле нет ответа? Это может быть первый случай, когда я сталкивался с чем-то в программировании, у которого действительно нет решения. Печально. – Makai

0

вы можете сделать это с помощью формулы рабочего листа, попробуйте следующее:

=INT(a1/12)&"ft "&TRIM(TEXT(a1-INT(a1/12)*12,"# ???/???"))&"in" 

где A1 является ячейка с UDF в нем.

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