Страницы: 1
RSS
Упростить код, который вставляет и протягивает ФОРМУЛУ.
 
Ребятки, добрый вечер!!  
Подскажите, можно ли как-нибудь упростить данную процедуру:  
1. Вставляется формула (не важно какая).  
2. протяжка формулы в НЕ смежных столбцах.  
 
Свой код привожу ниже:  
 
Range("F5,M5,T5,AA5,AH5,AO5,AV5,BC5,BG5").FormulaR1C1 = "=INDEX('Данные из журнала'!R4C1:R134C24,MATCH(RC2,'Данные из журнала'!R4C1:R134C1,0),MATCH(DATEVALUE(LEFT(R3C[-3],2)&MID(R3C[-3],3,3)&LEFT(RIGHT(R3C[-3],7),4)),'Данные из журнала'!R1C1:R1C24,0))"
     
   Range("F5").AutoFill Destination:=Range("F5:F79"), Type:=xlFillValues  
   Range("M5").AutoFill Destination:=Range("M5:M79"), Type:=xlFillValues  
   Range("T5").AutoFill Destination:=Range("T5:T79"), Type:=xlFillValues  
   Range("AA5").AutoFill Destination:=Range("AA5:AA79"), Type:=xlFillValues  
   Range("AH5").AutoFill Destination:=Range("AH5:AH79"), Type:=xlFillValues  
   Range("AO5").AutoFill Destination:=Range("AO5:AO79"), Type:=xlFillValues  
   Range("AV5").AutoFill Destination:=Range("AV5:AV79"), Type:=xlFillValues  
   Range("BC5").AutoFill Destination:=Range("BC5:BC79"), Type:=xlFillValues  
   Range("BG5").AutoFill Destination:=Range("BG5:BG79"), Type:=xlFillValues
 
Одной строкой:  
Range("F5:F79,M5:m79,T5:t79,AA5:aa79,AH5:ah79,AO5:ao79,AV5:av79,BC5:bc79,BG5:bg79").FormulaR1C1 = "=INDEX('Данные из журнала'!R4C1:R134C24,MATCH(RC2,'Данные из журнала'!R4C1:R134C1,0),MATCH(DATEVALUE(LEFT(R3C[-3],2)&MID(R3C[-3],3,3)&LEFT(RIGHT(R3C[-3],7),4)),'Данные из журнала'!R1C1:R1C24,0))"
Я сам - дурнее всякого примера! ...
 
{quote}{login=KukLP}{date=16.01.2012 10:53}{thema=}{post}Одной строкой:  
Range("F5:F79,M5:m79,T5:t79,AA5:aa79,AH5:ah79,AO5:ao79,AV5:av79,BC5:bc79,BG5:bg79").FormulaR1C1 = "=INDEX('Данные из журнала'!R4C1:R134C24,MATCH(RC2,'Данные из журнала'!R4C1:R134C1,0),MATCH(DATEVALUE(LEFT(R3C[-3],2)&MID(R3C[-3],3,3)&LEFT(RIGHT(R3C[-3],7),4)),'Данные из журнала'!R1C1:R1C24,0))"{/post}{/quote}
 
Большое спасибо, да, действительно проще !!
 
Ребятки, добрый день!!  
Подскажите пожалуйста как правильно прописать код, чтобы формула протягивалась в столбцах (НЕ смежных) от 5-ой строки и вниз до последней.  
Сам пытался составить, не получилось. Помогите исправить.  
 
Было:  
 
Sub Вставка_формул_ххх()  
Range("F5:F10,M5:M10,T5:T10,AA5:AA10,AH5:AH10,AO5:AO10").FormulaR1C1 = "=(RC[-1]-RC[-2])*2"
End Sub  
 
Мой НЕ удавшийся вариант:  
 
Sub Вставка_формул_ххх()  
Dim LastRow As Long  
 
LastRow = Cells(Rows.Count, 2).End(xlUp).Row  
 
Range("F5:LastRow,M5:LastRow,T5:LastRow,AA5:LastRow,AH5:LastRow,AO5:LastRow").FormulaR1C1 = "=(RC[-1]-RC[-2])*2"
         
End Sub
 
Попробуйте  
"F5:F" & LastRow  
и все остальные также
 
{quote}{login=Kuzmich}{date=20.01.2012 04:30}{thema=Re}{post}Попробуйте  
"F5:F" & LastRow  
и все остальные также{/post}{/quote}  
 
К сожалению не получается, выделяет "Range" и выдает ошибку ((  
 
Прилагаю пример:
 
Почти...  
Попробуйте так:  
 
Range("F5:F" & LastRow & ",M5:M" & LastRow & ",T5:T" & LastRow & ",AA5:AA" & LastRow).FormulaR1C1 = _
 
{quote}{login=Hugo}{date=20.01.2012 05:22}{thema=}{post}Почти...  
Попробуйте так:  
 
Range("F5:F" & LastRow & ",M5:M" & LastRow & ",T5:T" & LastRow & ",AA5:AA" & LastRow).FormulaR1C1 = _{/post}{/quote}  
 
Hugo, спасибо, вы очень помогли, ваш код безупречен !! ))
 
Моего тут 3 & :)
 
Вставляемую формулу не проверял  
 
With Sheets("WorkTime")  
Union(.Range("F5:F" & LastRow), .Range("M5:M" & LastRow), .Range("T5:T" & LastRow), .Range("AA5:AA" & LastRow)).FormulaR1C1 = _  
"=INDEX('Данные из журнала'!R4C1:R134C94,MATCH(RC2,'Данные из журнала'!R4C1:R134C1,0),MATCH(DATEVALUE(LEFT(R3C[-3],2)&MID(R3C[-3],SEARCH("" "",R3C[-3],1)+1,3)&LEFT(RIGHT(R3C[-3],7),4)),'Данные из журнала'!R1C1:R1C94,0))"
End With
Страницы: 1
Читают тему
Наверх