Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Правильное отображение код изд разной длины при копировании= - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Правильное отображение код изд разной длины при копировании= (Макросы/Sub)
Правильное отображение код изд разной длины при копировании=
Sancho Дата: Четверг, 26.11.2020, 11:16 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация: 19 ±
Замечаний: 0% ±

2007, 2010, 2013
Всем привет!
При формировании бирок для ячеек с изделиями по списку из БД столкнулся с проблемой правильного отображения кодов изделий разной длины. Изначально стояла задача для кодов длиной 10 символов и проблем с отображением не наблюдалось. Перенос из списка в бирку осуществляю обычным равенством текущей ячейки исходной.

[vba]
Код
Sub x()
For i = 1 To 10
With SHdetals
    .Cells(i, 6).Value = .Cells(i, 1).Value
End With
Next
MsgBox "END"
End Sub
[/vba]

Формат текущей ячейки "Текстовый"

Но тут подсунули список с кодами разной длины и началось проблемы - коды с длиной в 12, 14, 18 символов стали отображаться в итоге как экспоненциальное число с символом E. Добавил в равенство ячеек дополнительно """ &
[vba]
Код
Sub xxx()
For i = 1 To 10
With SHdetals
    .Cells(i, 6).Value = "'" & .Cells(i, 1).Value
End With
Next
MsgBox "END"
End Sub

[/vba]

Частично проблема решилась, но осталась с длиной в 12 и 18 символов. Что удивительно в файле примере проблема решилась с длиной в 12 символов, а в самом файле нет. Такое ощущение, что excel против четного количества пар чисел)
Подскажите пожалуйста, как все же исправить.
К сообщению приложен файл: Primer.xlsm (17.1 Kb)
 
Ответить
СообщениеВсем привет!
При формировании бирок для ячеек с изделиями по списку из БД столкнулся с проблемой правильного отображения кодов изделий разной длины. Изначально стояла задача для кодов длиной 10 символов и проблем с отображением не наблюдалось. Перенос из списка в бирку осуществляю обычным равенством текущей ячейки исходной.

[vba]
Код
Sub x()
For i = 1 To 10
With SHdetals
    .Cells(i, 6).Value = .Cells(i, 1).Value
End With
Next
MsgBox "END"
End Sub
[/vba]

Формат текущей ячейки "Текстовый"

Но тут подсунули список с кодами разной длины и началось проблемы - коды с длиной в 12, 14, 18 символов стали отображаться в итоге как экспоненциальное число с символом E. Добавил в равенство ячеек дополнительно """ &
[vba]
Код
Sub xxx()
For i = 1 To 10
With SHdetals
    .Cells(i, 6).Value = "'" & .Cells(i, 1).Value
End With
Next
MsgBox "END"
End Sub

[/vba]

Частично проблема решилась, но осталась с длиной в 12 и 18 символов. Что удивительно в файле примере проблема решилась с длиной в 12 символов, а в самом файле нет. Такое ощущение, что excel против четного количества пар чисел)
Подскажите пожалуйста, как все же исправить.

Автор - Sancho
Дата добавления - 26.11.2020 в 11:16
CaramelManiac Дата: Четверг, 26.11.2020, 11:47 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 64
Репутация: 22 ±
Замечаний: 0% ±

MS Excel 2003-2019
Здравствуйте.
Попробуйте так
[vba]
Код
.Cells(i, 6).Value = "'" & Format(.Cells(i, 1), "#")
[/vba]
 
Ответить
СообщениеЗдравствуйте.
Попробуйте так
[vba]
Код
.Cells(i, 6).Value = "'" & Format(.Cells(i, 1), "#")
[/vba]

Автор - CaramelManiac
Дата добавления - 26.11.2020 в 11:47
Sancho Дата: Четверг, 26.11.2020, 12:17 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация: 19 ±
Замечаний: 0% ±

2007, 2010, 2013
CaramelManiac, Спасибо! Не знал про такое свойство Format, поэтому и затруднялся как быть с разной длиной символов. Но во второй строке теперь первые 0 "убиваются", а они должны быть. Попробовал оба варианта что с ', что без.
 
Ответить
СообщениеCaramelManiac, Спасибо! Не знал про такое свойство Format, поэтому и затруднялся как быть с разной длиной символов. Но во второй строке теперь первые 0 "убиваются", а они должны быть. Попробовал оба варианта что с ', что без.

Автор - Sancho
Дата добавления - 26.11.2020 в 12:17
CaramelManiac Дата: Четверг, 26.11.2020, 13:07 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 64
Репутация: 22 ±
Замечаний: 0% ±

MS Excel 2003-2019
Извините, не заметил.
вот
[vba]
Код
.Cells(i, 6).Value = "'" & Format(.Cells(i, 1), String(Len(Trim(Application.Clean(.Cells(i, 1)))), "0"))
[/vba]
PS
Cтало понятно, почему у Вас ёxcel так странно себя вёл - это "грязные" исходные данные в столбе "A". Они содержат непечатаемые пробельные символы, т.е. Вы видите не совсем то, то содержится в ячейках.


Сообщение отредактировал CaramelManiac - Четверг, 26.11.2020, 13:08
 
Ответить
СообщениеИзвините, не заметил.
вот
[vba]
Код
.Cells(i, 6).Value = "'" & Format(.Cells(i, 1), String(Len(Trim(Application.Clean(.Cells(i, 1)))), "0"))
[/vba]
PS
Cтало понятно, почему у Вас ёxcel так странно себя вёл - это "грязные" исходные данные в столбе "A". Они содержат непечатаемые пробельные символы, т.е. Вы видите не совсем то, то содержится в ячейках.

Автор - CaramelManiac
Дата добавления - 26.11.2020 в 13:07
Sancho Дата: Четверг, 26.11.2020, 15:17 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация: 19 ±
Замечаний: 0% ±

2007, 2010, 2013
CaramelManiac, Спасибо!
 
Ответить
СообщениеCaramelManiac, Спасибо!

Автор - Sancho
Дата добавления - 26.11.2020 в 15:17
Hugo Дата: Четверг, 26.11.2020, 16:06 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3252
Репутация: 707 ±
Замечаний: 0% ±

2019
Вообще можно конечно из г-на делать конфетку, но...
[vba]
Код

- <c r="A3" s="1">
  <v>7.1530653300401498E+17</v>
  </c>
- <c r="B3">
  <f t="shared" si="0" />
  <v>18</v>
  </c>
  <c r="F3" s="4" />
  </row>
- <row r="4" spans="1:6" x14ac:dyDescent="0.25">
- <c r="A4" s="1">
  <v>7.1230314900411494E+17</v>
  </c>

[/vba]
Вы уверены что там именно такие коды должны быть? Вот эти два?


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеВообще можно конечно из г-на делать конфетку, но...
[vba]
Код

- <c r="A3" s="1">
  <v>7.1530653300401498E+17</v>
  </c>
- <c r="B3">
  <f t="shared" si="0" />
  <v>18</v>
  </c>
  <c r="F3" s="4" />
  </row>
- <row r="4" spans="1:6" x14ac:dyDescent="0.25">
- <c r="A4" s="1">
  <v>7.1230314900411494E+17</v>
  </c>

[/vba]
Вы уверены что там именно такие коды должны быть? Вот эти два?

Автор - Hugo
Дата добавления - 26.11.2020 в 16:06
Sancho Дата: Пятница, 27.11.2020, 12:04 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация: 19 ±
Замечаний: 0% ±

2007, 2010, 2013
Hugo, извините. но я ничего не понял. Это точно вопрос к этой теме?)
 
Ответить
СообщениеHugo, извините. но я ничего не понял. Это точно вопрос к этой теме?)

Автор - Sancho
Дата добавления - 27.11.2020 в 12:04
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Правильное отображение код изд разной длины при копировании= (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!