Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: VB

Программирование VB

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: как поменять $a$70 на (i, j ) ?
 
 автор: puzo   (09.08.2011 в 11:16)   личное сообщение
 
 

надо скачать j строк, каждая длиной 14 полей, из неоткрытого файла.
переделал найденный в инете макрос под себя :

Dim f, path  As String
Dim i, j  As Integer

    f = "2182_proba.xls"
    path = "='" & ThisWorkbook.path & Application.PathSeparator & "[" & f
i = 1
Worksheets("Лист1").Select
Do
  For j = 1 To 14
    Cells(i, j).Formula = path & "]ТЗ'!" & Str(j) & "," & Str(69 + i)
    'Cells(i, j).Formula = path & "]ТЗ'!$A$70"
       
    Cells(i, j).Value = Cells(i, j).Value
  Next j

  i = i + 1
Loop Until i < 3

если написать А70 - то всё работает
если написать и, жы - не работает, ругается.
как быть ?
есть же какой-то стандартное решение, просто я, как новичок программирования, его не знаю
подскажите, пожалуйста.

  Ответить  
 
 автор: snipe   (09.08.2011 в 15:58)   личное сообщение
 
 

вот что я написал
='C:\[2.xls]запрос1'!$C$1

а вот что записал Excel
ActiveCell.FormulaR1C1 = "='C:\[2.xls]запрос1'!R1C3"

  Ответить  
 
 автор: puzo   (09.08.2011 в 17:36)   личное сообщение
 
 

там если добавлять через + str(i) то добавляется не, например, 10, а пробел_10
и опять не работает строка. у меня не получилось без пробелов.

а вообще я третий день уж едумаю над этим, и докопался вот до чего :

Sheets(1).Activate

With Sheets(1).Range("A1:N16")
  .ClearContents
  .Formula = path & "]ТЗ'!$A$70:$N$85"
  .Value = .Value
  '.ClearContents
End With

то есть хочу обозвать на этом листе рейндж с а1 по н16 равный области в неоткрытом файле с а70 по Н85.
размеры вроде совпадают, только он пишет во всех ячейках #ЗНАЧ!
и опять не удаётся его побороть.
что я не так написал в аргументах range ? а , думаю, дело именно в нём.(них).
спасибо за ответ про р1с1. я попробую ещё раз.

  Ответить  
 
 автор: kot_k_k   (10.08.2011 в 09:03)   личное сообщение
 
 


там если добавлять через + str(i) то добавляется не, например, 10, а пробел_10



я всегда пишу Trim(Str(число)) для таких случаев.

вот спокойно работат
                
Rows(Trim(Str(i)) & ":" & Trim(Str(i + delta))).Select
Selection.Delete Shift:=xlUp

  Ответить  
 
 автор: puzo   (10.08.2011 в 13:22)   личное сообщение
 
 

эх не видел дополнения к ответу - с кодом
весь день эта страница была открыта, только руки дошли
спасибо большое за трим
и спасибо большое за R1C3
и то и другое помогло
правда пока значения не переносятся, всё усеяно #знач!
но я ща победю.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList