Есть текстовый файл 1.txt В нем запись : B6(1x2\2x7\3x1\4x1)(1x1\2x1\3x1)
По этой записи - в файле эксель нужно макросом построить таблицу.
B6 - это целевая ячейка, от которой нужно начинать строить таблицу. От целевой ячейки - первые скобки - это столбцы (номер столбца х его ширина. А затем через \ идет другой столбец) Ширина 1 - означает обычную одинарную ячейку. Ширина 2 - означает ячейку вдвое более широкую чем одинарная. Вторые скобки - это строки (номер строки х ее высота. И через \ другие строки.)
Здравствуйте. Помогите решить задачу.
Есть текстовый файл 1.txt В нем запись : B6(1x2\2x7\3x1\4x1)(1x1\2x1\3x1)
По этой записи - в файле эксель нужно макросом построить таблицу.
B6 - это целевая ячейка, от которой нужно начинать строить таблицу. От целевой ячейки - первые скобки - это столбцы (номер столбца х его ширина. А затем через \ идет другой столбец) Ширина 1 - означает обычную одинарную ячейку. Ширина 2 - означает ячейку вдвое более широкую чем одинарная. Вторые скобки - это строки (номер строки х ее высота. И через \ другие строки.)DimOzerov
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.]
[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
Быть или не быть, вот в чем загвоздка!
Сообщение отредактировал RAN - Пятница, 12.10.2018, 23:15
RAN, применил макрос. Получилась микроскопическая таблица. Подскажите - как ее сделать как в примере из первого сообщения ? ("...х1" - для столбца - это стандартная ширина столбца, умноженная на 1 "...х2" - для столбца - это стандартная ширина столбца, умноженная на 2 - то есть в два раза шире "...х1" - для строки - это стандартная высота строки, умноженная на 1 - то есть визуально высота строки останется без изменений)
А у вас в макросе - они почему-то меняют размер - на микроскопический.
RAN, применил макрос. Получилась микроскопическая таблица. Подскажите - как ее сделать как в примере из первого сообщения ? ("...х1" - для столбца - это стандартная ширина столбца, умноженная на 1 "...х2" - для столбца - это стандартная ширина столбца, умноженная на 2 - то есть в два раза шире "...х1" - для строки - это стандартная высота строки, умноженная на 1 - то есть визуально высота строки останется без изменений)
А у вас в макросе - они почему-то меняют размер - на микроскопический.DimOzerov