2016-06-21 4 views
3

Мне нужно заполнить определенные столбцы на одной вкладке из исходных данных, хранящихся на первой вкладке. Я сделал быстрый переупорядоченный код VBA, чтобы помочь кому-то понять, что я пытаюсь сделать, в надежде, что они могут уточнить. Мне также нужен код VBA для остановки в строке, где заканчиваются данные. в настоящее время записанный код VBA тянет вниз до строки 159, но данные в исходной вкладке останавливаются в строке 72. Я бы остановил код VBA в строке, где заканчивается информация, но это меняется изо дня в день и может быть где угодно от строки 1 до 158. (Если я заполняю ячейку, когда данные заканчиваются на оригинале, это делает лист непригодным для других целей, для которого я требую его, даже если он равен нулю.)Вытягивание информации с одной вкладки на другую

В колонке A и B, поэтому я подумал, может ли макрос сказать, находятся ли данные в ячейке A15, а затем вытащить информацию из G15 и т. Д.? Никаких данных нет. Я знаю, что это может показаться основным для некоторых, но как новичок, я все еще склоняюсь к VBA.

Sub Populate_Order() 
ActiveWindow.SmallScroll Down:=-15 
Range("M8").Select 
ActiveCell.FormulaR1C1 = "='Order Sheet'!R[7]C[-6]" 
Range("M8").Select 
Selection.AutoFill Destination:=Range("M8:M159"), Type:=xlFillDefault 
Range("M8:M159").Select 
ActiveWindow.SmallScroll Down:=-135 
Range("Q8").Select 
ActiveCell.FormulaR1C1 = "='Order Sheet'!R[7]C[-9]" 
Range("Q8").Select 
Selection.AutoFill Destination:=Range("Q8:Q159"), Type:=xlFillDefault 
Range("Q8:Q159").Select 
ActiveWindow.SmallScroll Down:=-132 
Range("R8").Select 
ActiveCell.FormulaR1C1 = "='Order Sheet'!R[7]C[-9]" 
Range("R8").Select 
Selection.AutoFill Destination:=Range("R8:R159"), Type:=xlFillDefault 
Range("R8:R159").Select 
ActiveWindow.SmallScroll Down:=-123 
Range("I3").Select 
+3

Google 'как найти последнюю строку' и' for loop'. – findwindow

+1

Кроме того, я *** очень *** предлагаю прочесть и применить [Как избежать использования '.Select'] (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select -в-первенствует-VBA-макросы). – BruceWayne

+0

Спасибо @BruceWayne, я сохраню эту тему, и как только я начну понимать основы и пойму какое-то понимание, я вернусь к этому. Есть ли у вас какие-либо ссылки на более общее понимание, которое пригодится для полного новичка. Я только что нашел о макросе и думал, что смогу использовать их, чтобы облегчить мою работу = раннее завершение;) спасибо – Bradley

ответ

1

, чтобы найти следующую пустую строку попробовать что-то вроде этого

Dim sourceSheet As Worksheet: Set sourceSheet = ThisWorkbook.Worksheets("sheet1") 
Dim destSheet As Worksheet: Set destSheet = ThisWorkbook.Worksheets("sheet2") 
lMaxRows = destSheet.Cells(destSheet.Rows.Count, "A").End(xlUp).Row 

destSheet.range("A" & lMaxRows + 1).Value = sourceSheet.range("M1").Value 

это простой пример поиска следующей пустой строки, то установки столбца А в этой строке на значение из ячейки M1 в другом лист

+0

Благодарим за помощь @ Vbasic4now. Я просто обнимаю макрос. Можно ли немного объяснить это, чтобы помочь мне лучше понять это? так что я могу отредактировать его для переупорядоченного макроса. Спасибо – Bradley

+0

@Bradley 1-ые 2 строки определяют, какой лист извлекают данные (sourceSheet) и где это вставлено (destSheet). третья строка определяет переменную с именем lMaxRows в качестве последней используемой строки в листе обработки. в последней строке указывается, что ячейка в столбце A в строке после последней используемой строки адресата имеет то же значение, что и ячейка M1 в исходном листе. – Vbasic4now

Смежные вопросы