|
|
|
| день добрый!
есть файл где-то sfile, до него путь spath
надо выковырять в наш файл кусок размером А91:AP106 при условии, что К91<>""
если делать
For i = 91 To 106
For j = 1 To 42
Cells(i - 90, j) = "='" & spath & "[" & sFile & "]" & "ТЗ'!R" & Trim(Str(i)) & "C" & Trim(Str(j))
Cells(i - 90, j).Value = Cells(i - 90, j).Value
Next j
Next i
то получается ооооочень долго ( файл тот - на серваке, не на нашем компе )
я думаю, что через Range должно быстрее работать, раз он берёт кусок целиком. можно ли ?
попробовал вот так :
Set wb = GetObject(spath & sFile)
Set rRomb = wb.Sheets("ТЗ").Range("A91:AP106")
wb.Close (False)
Range("A1").Value = rRomb.Value ' это я хочу в моём файле уже этот рейндж вставить
не работает, ругается.
что не так написано или на какой форум мне идти спрашивать с такими вопросами ? | |
|
| |
|
|
|
| сорь, а можно програмно:
- открыть этот файл
- выделить область
- скопировать
- вставить в нужное место ? | |
|
| |
|
|
|
| не, это просто ексель+вба (
сорри, наверно не в том форуме запостил.
так я так и хочу : открыть, выделить область путём range , скопировать это в переменную типа range
f потом вставить у себя на листочек.
повторить эн раз, пока не кончатся ТЗ . | |
|
| |
|
|
|
| range(cells(i1,j1),cells(i2,j2)) | |
|
| |
|
|
|
| Не получается, т.к. вы рано делаете wb.Close | |
|
| |
|
|
|
| 2 snipe - это опять перебирать все и и жы ? не хочется. хочется какрас без них. с циклом же получилось. н о медленно
2 анатолий - да ? нам же wb не нужен. мы же рРомб создали. у нас есть виртуальная табличка, которую создал рРомб.
а Range("A1").Value = rRomb.Value - так это я хочу присвоить значение рРомб-а в мой лист в моём файле начиная с ячейки А1.
спасибо, всё равно попробую. | |
|
| |
|
|
|
|
да ? нам же wb не нужен. мы же рРомб создали. у нас есть виртуальная табличка, которую создал рРомб.
|
Еще как нужен! Объект rRomb, это просто ссылка на диапазон, у которого есть родителель -лист "ТЗ", у которого есть родитель - книга. А вы родителей убили!
Если вас не интересует форматирование ячеек, а только значения, то можно иначе:
Dim v as Variant
v = wb.Sheets("ТЗ").Range("A91:AP106").Value
wb.Close (False)
...
Range("A1").Value = v
|
| |
|
| |