powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Зачем нужен Апостроф при заполнении ячеек данными из других источников ?
8 сообщений из 8, страница 1 из 1
Зачем нужен Апостроф при заполнении ячеек данными из других источников ?
    #34765695
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть в Excel'ской книге именованный диапазон List1 с полем СтавкаР
Заполняю его данными :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Public Function SQL_Execute()
Dim dbName As String, Cnn As ADODB.Connection
dbName = ActiveWorkbook.Path + "\" + ActiveWorkbook.Name 
Set Cnn = New ADODB.Connection
Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
         "Data Source=" & dbName & ";" & _
         "Extended Properties=""Excel 8.0;HDR=YES;"";"   

Cnn.Execute " UPDATE List1 SET List1.СтавкаР =1 "
Cnn.Close 
End Function

В Итоге в ячейках СтавкаР получаются значения типа "'1", Апостроф виден только при клике на ячейку и как числа эти ячейки уже не интерпретируются.
Приходится их обрабатывать с помощью Cell.Value=Cell.Text
Причем , после обработки таким образом (или же из контекстного меню превращения в числа) уже при повторном UPDATE данных ячейки НЕ имеют этого апострофа ! Если же перед UPDATE эти ячейки очистить, то Апостроф опять появляется при UPDATE.

Вопросы :
1) Зачем добавляется этот Апостроф ?
2)Нельзя ли использовать какой способ соединения с источником , чтобы Апостроф не добавлялся, а вставлялись данные числового формата?
...
Рейтинг: 0 / 0
Зачем нужен Апостроф при заполнении ячеек данными из других источников ?
    #34765724
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Символ апострофа в начале говорит о том, что в ячейке строка. Cell.Value не содержит этого апострофа. Нужен он для того, чтоб Excel не пытался интерпретировать значения как дату или число. Например, вы получаете номер счета с 20-ю цифрами, без апострофа бы получите обрезанное до 15 значащих символов десятичное число. Или, другой пример, вы получаете десятичные числа, то 5.2 будет интерпретировано как 5 февраля (или 2-е мая).
...
Рейтинг: 0 / 0
Зачем нужен Апостроф при заполнении ячеек данными из других источников ?
    #34765742
Фотография Rampage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Function GetOnly(InputText As String) As String
    Const MyChars = "ABCabc..1234567890,." 'кароч тут всё перечисле кроме апострофа
    Dim i As Integer
    
    For i =  1  To Len(MyChars)
        InputText = Replace(InputText, Mid(MyChars, i,  1 ), "")
    Next i
    
    GetOnly = InputText
End Function
вот функция... но в ней интересная тема, может разберешся)
...
Рейтинг: 0 / 0
Зачем нужен Апостроф при заполнении ячеек данными из других источников ?
    #34765754
Bery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо, решил многовековую проблему с интерпретацией в дату, не знал даже :))
...
Рейтинг: 0 / 0
Зачем нужен Апостроф при заполнении ячеек данными из других источников ?
    #34765863
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vbaproНужен он для того, чтоб Excel не пытался интерпретировать значения как дату или число

Непонятно.
А что же Provider к источникам данных разве не понимает, что это число? В конкретном моем примере, например, 1 - это число и ничем другим быть не может. Если Provider понимает, то зачем же Excel берет от Provider'а заведомо известное как число данное 1 и помечает его апострофом? Ну , не знаю, - может по другому, надо спросить - Provider данных зачем берет число 1 и кладет его в Excel с предваряющим апострофом ?

2 Rampage> И к чему эта функция?
...
Рейтинг: 0 / 0
Зачем нужен Апостроф при заполнении ячеек данными из других источников ?
    #34766767
Фотография Rampage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kefi vbaproНужен он для того, чтоб Excel не пытался интерпретировать значения как дату или число

Непонятно.
А что же Provider к источникам данных разве не понимает, что это число? В конкретном моем примере, например, 1 - это число и ничем другим быть не может. Если Provider понимает, то зачем же Excel берет от Provider'а заведомо известное как число данное 1 и помечает его апострофом? Ну , не знаю, - может по другому, надо спросить - Provider данных зачем берет число 1 и кладет его в Excel с предваряющим апострофом ?

2 Rampage> И к чему эта функция?
она вытаскивает из ячейке только те символы какие ты указал , тоесть можешь например , вписать туда все символы кроме апострофа , может применишь сам код, или че нить еще замутишь , у я просто на всякий случай, чтоб были варианты...
...
Рейтинг: 0 / 0
Зачем нужен Апостроф при заполнении ячеек данными из других источников ?
    #34766917
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Rampage2 Rampage> И к чему эта функция?
она вытаскивает... я просто на всякий случай, чтоб были варианты...[/quot]
Варианты уже были (Cell.Value=Cell.Text), но они и не требовались, в топике про них не спрашивается.
Проблема в том - ЗАЧЕМ Excel лепит этот апостроф.

Видно, нужно выдвигать гипотезы:
По идее можно было бы вручную задать в Excel в диапазоне ячеек формат (например, числовой), после чего закачивать через OLEDB Provider'а числовые данные , а Excel бы их интерпретировал как число, ориентируясь на формат заполняемых ячеек. Но Excel, видно, сделан больше для ручной работы пользователя и поэтому там оставлено такое "удобство", а именно - пользователю при работе с Excel не нужно подгонять формат ячеек перед ручной закачкой данных из файлов другого формата, а чтобы они не искажались неверной интерпретацией, все они принимаются с предваряющим апострофом. А вообще, - черт его знает, что за фигня - многие накалываюся с этой проблемой.

PS. И еще про апостроф http://forum.ru-board.com/topic.cgi?forum=5&topic=23470&start=378&limit=1&m=1#1
...
Рейтинг: 0 / 0
Зачем нужен Апостроф при заполнении ячеек данными из других источников ?
    #34766962
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вообще мне кажется, что правильно было бы мелкософтовцам сделать определение типа данных по типу ячеек и не мудрствовать лукаво. Тогда не было бы проблем с конвертацией из других источников.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Зачем нужен Апостроф при заполнении ячеек данными из других источников ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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