БМВ, как так ? Какие связи ? Нужен макрос, который просто переоткрывает файл в режиме "только для чтения" и все.
То есть макрос - закрывает файл открытый только для чтения и тут же этот закрытый секунду назад файл (так же в режиме только для чтения). То есть - перезапускает файл в том же режиме.
_Igor_61, подскажите - а как таблицу-то добавить. Я имею ввиду - обычную таблицу, состоящую из вертикальных и горизонтальных линий. Сейчас просто идет отображение чисел - без линий-разделителей. Это очень неудобно читать, особенно когда диапазон большой.
На листе экселя - даже если в таблице нет линий - все равно можно как-то ориентироваться, потому что клетки - тем не менее отображаются.
У меня есть макрос, который отображает на форме - диаграмму (надо нажать на кнопку "Старт" - на Листе1).
Подскажите - как изменить этот код, чтобы подобным образом отображать на форме - не диаграмму, а диапазон с числами, по которым строится эта диаграмма ?
Sub q()
'стандартная ширина и высота
w = Range("A1").ColumnWidth
h = Range("A1").RowHeight
Open "C:\Text1.txt" For Input As #1 'открываем файл на чтение
s = Input(LOF(1), 1) 'считываем в переменную весь файл
spl = Split(Replace(s, ")", ""), "(")
cellOne = spl(0)
spl1 = Split(spl(1), "\")
For i = 0 To UBound(spl1)
spl11 = Split(spl1(i), "x")
With Range(spl(0)).Offset(, spl11(0) - 1)
.EntireColumn.ColumnWidth = spl11(1) * w
End With
Next
spl2 = Split(spl(2), "\")
For j = 0 To UBound(spl2)
spl22 = Split(spl2(j), "x")
With Range(spl(0)).Offset(spl22(0) - 1)
.EntireRow.RowHeight = spl22(1) * h
End With
Next
With Range(spl(0)).Resize(i + 1, j + 1)
.Borders(xlEdgeLeft).Weight = xlThin
.Borders(xlEdgeBottom).Weight = xlThin
.Borders(xlEdgeRight).Weight = xlThin
.Borders(xlEdgeTop).Weight = xlThin
.Borders(xlInsideHorizontal).Weight = xlThin
.Borders(xlInsideVertical).Weight = xlThin
End With
End Sub
Есть текстовый файл 1.txt В нем запись : B6(1x2\2x7\3x1\4x1)(1x1\2x1\3x1)
По этой записи - в файле эксель нужно макросом построить таблицу.
B6 - это целевая ячейка, от которой нужно начинать строить таблицу. От целевой ячейки - первые скобки - это столбцы (номер столбца х его ширина. А затем через \ идет другой столбец) Ширина 1 - означает обычную одинарную ячейку. Ширина 2 - означает ячейку вдвое более широкую чем одинарная. Вторые скобки - это строки (номер строки х ее высота. И через \ другие строки.)
Но сейчас при использовании имеющегося макроса - получается какая-то микроскопическая таблица. Подскажите - как ее сделать как в примере из первого сообщения ? ("...х1" - для столбца - это стандартная ширина столбца, умноженная на 1 "...х2" - для столбца - это стандартная ширина столбца, умноженная на 2 - то есть в два раза шире "...х1" - для строки - это стандартная высота строки, умноженная на 1 - то есть визуально высота строки останется без изменений)
В имеющемся макросе - можно двигать любой из зеленых квадратов - макрос будет их выравнивать по горизонтали-вертикали. Эти зеленые квадраты выписаны в макросе так: Верхний горизонтальный ряд: prugol_sverkhu = Array("Prgl 2", "Prgl 3", "Prgl 4") Левый вертикальный ряд: prugol_sleva = Array("Prgl 5", "Prgl 9", "Prgl 13", "Prgl 17")
Есть еще синие квадраты, которые расставлены по сетке. Как аналогичным образом выравнивать и остальные вертикальные и горизонтальные ряды этой сетки, в которые входят синие квадраты ?