Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / функция Format и com-объект / 25 сообщений из 28, страница 1 из 2
22.02.2012, 11:28
    #37674034
Алексей2003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
необходимо использовать функцию Format для экселя, но она относится к другому COM-объекту я так понимаю, потому как
Excel.Application не подходит
какой ком объект нужно создать, чтобы получить доступ к этой функции?
спасибо

для спящего время бодрствования равносильно сну
...
Рейтинг: 0 / 0
22.02.2012, 11:36
    #37674058
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
Не понял.
Вы хотите откуда-то извне, из программы, написанной НЕ на VB вызывать функцию Format, чтобы она отформатировала данные, переданные ей опять же извне?
...
Рейтинг: 0 / 0
22.02.2012, 11:41
    #37674068
Алексей2003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
в excel есть ячейка
значение 1 + формат "AB", в ячейке отображается 1AB
я эту ячейку считываю из 1с (через ком-объект). функцию формат использовать не могу при этом.
как мне достучаться до этой функции, чтобы получить 1AB?
...
Рейтинг: 0 / 0
22.02.2012, 11:44
    #37674076
Алексей2003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
т.е. я хочу использовать следующий код
Format(MyList.Range("D17").Formula, MyList.Range("D17").NumberFormat)
...
Рейтинг: 0 / 0
22.02.2012, 12:22
    #37674149
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
Алексей2003т.е. я хочу использовать следующий код
Format(MyList.Range("D17").Formula, MyList.Range("D17").NumberFormat)А не проще будет использовать формулу =ТЕКСТ в соседней ячейке? Или файл модифицировать нельзя?
...
Рейтинг: 0 / 0
22.02.2012, 14:52
    #37674489
Алексей2003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
нельзя
...
Рейтинг: 0 / 0
22.02.2012, 21:49
    #37675114
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
А так пробовали?

Код: vbnet
1.
2.
3.
4.
5.
6.
Sub test()
    With MyList.Range("D17")
        x = Application.Text(.Value, .NumberFormat)
        ' или x = Application.WorksheetFunction.Text(.Value, .NumberFormat)
    End With
End Sub
...
Рейтинг: 0 / 0
22.02.2012, 21:52
    #37675120
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
Еще так можно попробовать:

Код: vbnet
1.
2.
3.
4.
5.
Sub test()
    With MyList.Range("D17")
        x = VBA.Format(.Value, .NumberFormat)
    End With
End Sub
...
Рейтинг: 0 / 0
22.02.2012, 21:59
    #37675125
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
Ессно, имелось в виду это:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Sub test()
    Dim oXLApp as Excel.Application
    With MyList.Range("D17")
        x = oXLApp.Text(.Value, .NumberFormat)
        ' или x = oXLApp.WorksheetFunction.Text(.Value, .NumberFormat)
    End With
End Sub
...
Рейтинг: 0 / 0
23.02.2012, 13:45
    #37675510
ZVI
ZVI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
Ещё для коллекции: при обращении из кода к ячейке, по умолчанию считывается её свойство .Value
А чтобы считать то, что отображается в ячейке (с форматом), нужно использовать свойство .Text
Т.е. вместо Range("A1"), Cells(1,1) или Range("A1").Value, Cells(1,1).Value используйте Range("A1").Text, Cells(1,1).Text
...
Рейтинг: 0 / 0
23.02.2012, 14:33
    #37675566
Алексей2003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
если колонка будет сужена и в нее не будет помещаться значение, то свойство Text будет содержать символы ### что не дает гарантию 100% считыванию значения
...
Рейтинг: 0 / 0
23.02.2012, 14:52
    #37675585
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
Алексей2003если колонка будет сужена и в нее не будет помещаться значение, то свойство Text будет содержать символы ### что не дает гарантию 100% считыванию значения
А вы ее AutoFit-ом :) Вы мои варианты попробовали?
...
Рейтинг: 0 / 0
23.02.2012, 14:53
    #37675587
Алексей2003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
KL (XL)Ессно, имелось в виду это:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Sub test()
    Dim oXLApp as Excel.Application
    With MyList.Range("D17")
        x = oXLApp.Text(.Value, .NumberFormat)
        ' или x = oXLApp.WorksheetFunction.Text(.Value, .NumberFormat)
    End With
End Sub


спасибо! помогло!!!
...
Рейтинг: 0 / 0
23.02.2012, 14:58
    #37675592
Алексей2003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
KL (XL)Алексей2003если колонка будет сужена и в нее не будет помещаться значение, то свойство Text будет содержать символы ### что не дает гарантию 100% считыванию значения
А вы ее AutoFit-ом :) Вы мои варианты попробовали?
да если бы это было разовые загрузки не вопрос, а когда загрузка эксель файлов поставлена на поток и считывается из почты и что там в них будет, хочется иметь работающий вариант в котором уверен
...
Рейтинг: 0 / 0
23.02.2012, 15:01
    #37675594
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
KL (XL)Еще так можно попробовать:

Код: vbnet
1.
2.
3.
4.
5.
Sub test()
    With MyList.Range("D17")
        x = VBA.Format(.Value, .NumberFormat)
    End With
End Sub


В Office библиотека VBA подключена по умолчанию, в вашем случае возможно понадобится ссылка на VBE6.DLL
...
Рейтинг: 0 / 0
23.02.2012, 15:01
    #37675597
Алексей2003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
когда работаешь из офиса - то сработало без проблем. я эту функцию и нашел. а вот когда мне понадобилось получить тоже самое из 1с, где подгружен только ком объект экселя, функция формат оказалась недоступна
...
Рейтинг: 0 / 0
23.02.2012, 15:05
    #37675603
Алексей2003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
KL (XL)KL (XL)Еще так можно попробовать:

Код: vbnet
1.
2.
3.
4.
5.
Sub test()
    With MyList.Range("D17")
        x = VBA.Format(.Value, .NumberFormat)
    End With
End Sub


В Office библиотека VBA подключена по умолчанию, в вашем случае возможно понадобится ссылка на VBE6.DLL
+нашел я эту библиотеку в реестре, попробовал получить ком объект, он не загружается.. поэтому и обратился потом сюда
...
Рейтинг: 0 / 0
23.02.2012, 15:09
    #37675607
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
Алексей2003,

А IDE в 1С не позволяет устанавливать ссылки на дополнительные библиотеки?
На всякий случай, VBE6.DLL в Window7 64bit находится по адресу: C:\Program Files (x86)\Common Files\microsoft shared\VBA\VBA6
Если установлен только Office2010, то тогда VBE7.DLL по адресу: C:\Program Files (x86)\Common Files\microsoft shared\VBA\VBA7
...
Рейтинг: 0 / 0
23.02.2012, 15:11
    #37675610
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
Алексей2003+нашел я эту библиотеку в реестре, попробовал получить ком объект, он не загружается.. поэтому и обратился потом сюда
Я думаю, COM-Object в данном случае не нужен, просто попробуйте создать ссылку и использовать Format или VBA.Format
...
Рейтинг: 0 / 0
23.02.2012, 15:16
    #37675613
Алексей2003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
в 1с VBA не прокатит.
но у меня еще 1 вопрос
Эксель.Text(Лист.range("g4").text,Лист.range("g4").NumberFormat) возвращает 40960, хотя желательно вернуть 21.02.2012, как определить что формат стоит даты?
...
Рейтинг: 0 / 0
23.02.2012, 15:26
    #37675622
Алексей2003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
KL (XL)Алексей2003,

А IDE в 1С не позволяет устанавливать ссылки на дополнительные библиотеки?
На всякий случай, VBE6.DLL в Window7 64bit находится по адресу: C:\Program Files (x86)\Common Files\microsoft shared\VBA\VBA6
Если установлен только Office2010, то тогда VBE7.DLL по адресу: C:\Program Files (x86)\Common Files\microsoft shared\VBA\VBA7
не, такого там нет как в эксель, подключить библиотеки
...
Рейтинг: 0 / 0
23.02.2012, 16:18
    #37675664
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
Алексей2003в 1с VBA не прокатит.
но у меня еще 1 вопрос
Эксель.Text(Лист.range("g4").text,Лист.range("g4").NumberFormat) возвращает 40960, хотя желательно вернуть 21.02.2012, как определить что формат стоит даты?
Судя по результату, там стоит формат "General", тогда, думаю, никак :(
...
Рейтинг: 0 / 0
23.02.2012, 16:19
    #37675668
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
Или на листе отображается как дата?
...
Рейтинг: 0 / 0
23.02.2012, 16:54
    #37675693
Алексей2003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
да, формат стоит как "Основной". так и обработал, что если формат основной, то не делать преобразований и считываю Value, если другой - тогда через метод Text
спасибо за помощь.
...
Рейтинг: 0 / 0
23.02.2012, 16:54
    #37675695
Алексей2003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция Format и com-объект
KL (XL)Или на листе отображается как дата?
да на листе отображается как дата конечно же, и во всех возможных свойствах пишется как 22.02.2012
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / функция Format и com-объект / 25 сообщений из 28, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]