Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: Пред. 1 2
RSS
Определённое пользователем количество символов в формуле
 
Вообще цель макроса упростить работу и записать формулу с соответствующим префиксом и с соответствующим количеством символов в строке.
Т.е. я открываю таблицу, запускаю макрос и на второй странице записывается формула с которой я продолжу работать в другой программе, при этом мне нельзя превышать количество символов в строке и терять какие-либо данные.
Сам я начал попытке по записи этого макроса в начале сентября, но встрял, макрос выглядел так:
Код
Sub Макрос()'
' макрос 
'Cells.Replace What:=";", Replacement:=","
Cells.Replace What:="""", Replacement:=""
Range(ActiveCell, ActiveCell.End(xlDown).End(xlToRight)).Select
Selection.Copy
Sheets.Add After:=ActiveSheet
ActiveSheet.Name = "Èìïîðò"
ActiveSheet.Paste
Range("A2").Select
Selection.End(xlToRight).Select
ActiveCell.Offset(0, 1).Range("A1").Select
UserEntry = InputBox("прификс")
Public Head As StringIf UserEntry = "cn" Then
ActiveCell.Value = UserEntry
ActiveCell.FormulaR1C1 = "=""cn;""&RC[-3]&"";""&RC[-2]&"" ""&RC[-1]"
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.FillDown

If UserEntry = "cd" Then ActiveCell.Value = UserEntry
ActiveCell.FormulaR1C1 = "=""cd;""&RC[-3]&"";""&RC[-2]&"" ""&RC[-1]"
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.FillDown

If UserEntry = "fd" Then ActiveCell.Value = UserEntry
ActiveCell.FormulaR1C1 = "=""cd;""&RC[-3]&"";""&RC[-2]&"" ""&RC[-1]"
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.FillDown

If UserEntry = "fn" Then ActiveCell.Value = UserEntry
ActiveCell.FormulaR1C1 = "=""cd;""&RC[-3]&"";""&RC[-2]&"" ""&RC[-1]"
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.FillDown
End If
End Property 

Позже в него  были добавлены Case функции.
Но теперь встала новая задача, в этом макросе идёт сцепка только 3-х столбцов, меня это не устраивает, т.к. их в таблице их может быть больше 3-х, а как я говорил ранее данные терять нельзя, я начал искать как сцепить все ячейки слева от активной, и ничего не нашёл.
При том остаётся вопрос по количеству символов в строке, если будет больше 80 в CN, то при работе в другой проге будет ошибка.

Может будет проще если добить до конца мой первый макрос?
Знаете как сцепить все не пустые ячейки слева от активной на языке VBA. Учитывая что есть ограничения по символам, и если есть превышение начать деление на строки ниже с сохранением соответствия к ШК?

Я вложил изображение, надо чтобы ШК остался, но "лишние" 11 символов перешли на строку ниже с этим же ШК и с такой же формулой.  

Юрий М, Вы сделали почти то что надо, вот только Ваш код использует уже готовую формулу, удаляет её и записывает на уже существующий лист, а надо сцепка происходило на создаваемом листе, и не должны корректироваться исходные данные.
Изменено: Дилетант - 30 Сен 2018 13:50:26
 
Дилетант, код следует оформлять соответствующим тегом. Ищите такую кнопку (см. скрин) и исправьте своё сообщение.
Тег VBA.jpg (19.2 КБ)
 
Цитата
Дилетант написал:
Юрий М, Вы сделали почти то что надо, вот только Ваш код использует уже готовую формулу, удаляет её
Опять Вы про формулы? Никакой "готовой формулы" мой код не использует.  
 
Вылетает иногда "формула", я так сцепку называю(
Страницы: Пред. 1 2
Читают тему (гостей: 5)
Наверх