2015-01-02 3 views
0

Я пытаюсь создать макрос, который будет копировать/вставлять или повторять значение предыдущей ячейки в следующую пустую ячейку, пока не появится новое значение ячейки, затем он повторяется до конца заданного диапазона 365 ячеек. Пример ниже в ссылке imgur пытается визуализировать то, что я имею в виду, вторая строка является желаемым результатом.Скопировать и вставить значение ячейки до значения новой ячейки, а затем повторить процесс

http://imgur.com/uATxns8

+0

Кажется достаточно легко с Recorder, что вам мешает? Можете ли вы уточнить, что «повторяется» - то есть, когда выводится до конца, в последней, предположительно существующей населенной ячейке? – pnuts

+0

Это всегда будет Row 1 & 2? – peege

ответ

0

Это решение в VBA.

Sub ReferAndRepeat() 

Dim tempVal As String 
Dim sheet As String 

sheet = "Sheet1" 'Name your sheet here 

    For lCol = 1 To 365 
     If Sheets(sheet).Cells(1, lCol) <> "" Then 
      tempVal = Sheets(sheet).Cells(1, lCol).Text 
     End If 

     Sheets(sheet).Cells(2, lCol) = tempVal 
    Next lCol 
End Sub 

Screeshot

+0

Большое вам спасибо! Это именно то, что я искал! Как написать код так, чтобы это была только одна строка, так что только строка 1 заполняет пустые ячейки, не записывая новое значение в ячейке. – Nick

+0

Я не уверен, что понимаю. Вы имеете в виду что-то отличное от рисунка в вашем первоначальном вопросе? – peege

+0

http://imgur.com/ZI5dIGo,giUvAIF#1 Что-то, что будет автоматически заполнять эти пустые ячейки всего за одну строку и не перезаписывать новое число в строке. Я защелкнулся, после чего. – Nick

0

Если не понимают вас, это легко в Excel с помощью формул. VBA будет излишним.

Формула в ячейке A2 составляет =A1. Формула в ячейке B2 - это просто =IF(B1="",A2,B1), которая просто читает, если ячейка B1 пуста, они используют значение в ячейке A2, иначе если B1 не пуст, тогда используйте значение в B1. Затем, до тех пор, пока ваши ссылки на значения, как в строке 1, в изображении, вы затем скопировать эту формулу в поперечнике, в строке 2.

enter image description here

+0

Выберите Blanks, '=', Left, Ctrl + Enter можно считать еще проще (на копии Row1). – pnuts

+1

Я бы оставил его (по крайней мере, pro tem) - это может указывать на то, что OP хочет, чтобы VBA, возможно, как часть кода, выполнялся повторно/часто/неконтролируемый и т. Д. Но, учитывая «макрос» в теле, он не должен превышать возможности OP сначала нажмите «Записать макрос»! – pnuts

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