Страницы: 1
RSS
Макрос формирует таблицу эксель - слишком малого размера
 
Здравствуйте.
Дайте совет по работе макроса.

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

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

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

Но сейчас при использовании имеющегося макроса - получается какая-то микроскопическая таблица.
Подскажите - как ее сделать как в примере из первого сообщения ?
("...х1" - для столбца - это стандартная ширина столбца, умноженная на 1
"...х2" - для столбца - это стандартная ширина столбца, умноженная на 2 - то есть в два раза шире
"...х1" - для строки - это стандартная высота строки, умноженная на 1 - то есть визуально высота строки останется без изменений)
 
ну столбец в 1-7 пикселя и правда маловат.
По вопросам из тем форума, личку не читаю.
 
Dim Ozerov,
Код
Sub q()
'стандартная ширина и высота
w = Range("A1").ColumnWidth
h = Range("A1").RowHeight
    s = "B6(1x2\2x7\3x1\4x1)(1x1\2x3\3x2)"
    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) * w
    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) * h
    Next
End Sub
 
Казанский, понятно.
Спасибо
 
Dim Ozerov, Не помню где, и как давно я писал этот макрос, но помню точно, что там-же я писал, что, в случае необходимости, нужно применить арифметику.  :)

нашел
Изменено: RAN - 18.10.2018 21:44:04
 
Цитата
RAN написал:
писал, что, в случае необходимости, нужно применить арифметику.
Андрей, а нужно применить еще  черчение :-)
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх