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

Вход

Регистрация

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

 

= Мир MS Excel/Составление таблицы по текстовому файлу - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Составление таблицы по текстовому файлу (Макросы/Sub)
Составление таблицы по текстовому файлу
DimOzerov Дата: Пятница, 12.10.2018, 22:00 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте.
Помогите решить задачу.

Есть текстовый файл 1.txt
В нем запись :
B6(1x2\2x7\3x1\4x1)(1x1\2x1\3x1)

По этой записи - в файле эксель нужно макросом построить таблицу.

B6 - это целевая ячейка, от которой нужно начинать строить таблицу.
От целевой ячейки - первые скобки - это столбцы (номер столбца х его ширина. А затем через \ идет другой столбец)
Ширина 1 - означает обычную одинарную ячейку. Ширина 2 - означает ячейку вдвое более широкую чем одинарная.
Вторые скобки - это строки (номер строки х ее высота. И через \ другие строки.)
К сообщению приложен файл: 3282375.txt (0.2 Kb) · 7030342.xls (27.0 Kb)
 
Ответить
СообщениеЗдравствуйте.
Помогите решить задачу.

Есть текстовый файл 1.txt
В нем запись :
B6(1x2\2x7\3x1\4x1)(1x1\2x1\3x1)

По этой записи - в файле эксель нужно макросом построить таблицу.

B6 - это целевая ячейка, от которой нужно начинать строить таблицу.
От целевой ячейки - первые скобки - это столбцы (номер столбца х его ширина. А затем через \ идет другой столбец)
Ширина 1 - означает обычную одинарную ячейку. Ширина 2 - означает ячейку вдвое более широкую чем одинарная.
Вторые скобки - это строки (номер строки х ее высота. И через \ другие строки.)

Автор - DimOzerov
Дата добавления - 12.10.2018 в 22:00
RAN Дата: Пятница, 12.10.2018, 23:08 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub q()
    s = "B6(1x2\2x7\3x1\4x1)(1x1\2x1\3x1)"
    spl = Split(Replace(s, ")", ""), "(")
    cellOne = spl(0)
    spl1 = Split(spl(1), "\")
    For i = 0 To UBound(spl1)
        spl11 = Split(spl1(i), "x")
        Range(spl(0)).Offset(, spl11(0) - 1).EntireColumn.ColumnWidth = spl11(1)
    Next
    spl2 = Split(spl(2), "\")
    For i = 0 To UBound(spl2)
        spl22 = Split(spl2(i), "x")
        Range(spl(0)).Offset(spl22(0) - 1).EntireRow.RowHeight = spl22(1)
    Next
End Sub
[/vba]
Вытаскивать строку из txt лениво.
[p.s.]Конечно, может быть, что в "?х1" 1 это не одна единица ширины столбца, или высоты строки, а, возможно, 1 гигапарсек, и нужно еще включить арифметику...[/p.s.]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Пятница, 12.10.2018, 23:15
 
Ответить
Сообщение[vba]
Код
Sub q()
    s = "B6(1x2\2x7\3x1\4x1)(1x1\2x1\3x1)"
    spl = Split(Replace(s, ")", ""), "(")
    cellOne = spl(0)
    spl1 = Split(spl(1), "\")
    For i = 0 To UBound(spl1)
        spl11 = Split(spl1(i), "x")
        Range(spl(0)).Offset(, spl11(0) - 1).EntireColumn.ColumnWidth = spl11(1)
    Next
    spl2 = Split(spl(2), "\")
    For i = 0 To UBound(spl2)
        spl22 = Split(spl2(i), "x")
        Range(spl(0)).Offset(spl22(0) - 1).EntireRow.RowHeight = spl22(1)
    Next
End Sub
[/vba]
Вытаскивать строку из txt лениво.
[p.s.]Конечно, может быть, что в "?х1" 1 это не одна единица ширины столбца, или высоты строки, а, возможно, 1 гигапарсек, и нужно еще включить арифметику...[/p.s.]

Автор - RAN
Дата добавления - 12.10.2018 в 23:08
DimOzerov Дата: Суббота, 13.10.2018, 07:12 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
RAN, применил макрос.
Получилась микроскопическая таблица.
Подскажите - как ее сделать как в примере из первого сообщения ?
("...х1" - для столбца - это стандартная ширина столбца, умноженная на 1
"...х2" - для столбца - это стандартная ширина столбца, умноженная на 2 - то есть в два раза шире
"...х1" - для строки - это стандартная высота строки, умноженная на 1 - то есть визуально высота строки останется без изменений)

А у вас в макросе - они почему-то меняют размер - на микроскопический.
К сообщению приложен файл: 3083990.xls (43.5 Kb)
 
Ответить
СообщениеRAN, применил макрос.
Получилась микроскопическая таблица.
Подскажите - как ее сделать как в примере из первого сообщения ?
("...х1" - для столбца - это стандартная ширина столбца, умноженная на 1
"...х2" - для столбца - это стандартная ширина столбца, умноженная на 2 - то есть в два раза шире
"...х1" - для строки - это стандартная высота строки, умноженная на 1 - то есть визуально высота строки останется без изменений)

А у вас в макросе - они почему-то меняют размер - на микроскопический.

Автор - DimOzerov
Дата добавления - 13.10.2018 в 07:12
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Составление таблицы по текстовому файлу (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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