2013-03-08 3 views
2

Могут ли все помочь мне? Данные всегда есть столбец A, лист 1, и я хочу скопировать и вставить в пустой столбцы на листе2. В первый раз данные поступают на столбец A 2 и второй раз (другие данные, которые я положил на стол 1 столбца A), на столбец B 2 и так далее. Я нашел этот код, но поместил данные только в столбец A, Sheet2.vba excel 2010 копирует данные в другую пустую колонку

Sub Insert_Data() 

Sheets("Tratamento").Range("A1").Copy Destination:=Sheets("Dados").Range("A1") 
For i = 2 To Sheets("Tratamento").Cells(Rows.Count, 1).End(xlUp).Row 
Sheets("Tratamento").Range("A" & i).Copy Destination:=Sheets("Dados").Range("A" & Sheets("Dados").Cells(Rows.Count, 1).End(xlUp).Row + 1) 
Next i 

End Sub 

ответ

1

Следующая команда должна выполнить задание:

Select Case Sheets("Dados").Range("A1") = "" 

Case True 'paste in col A if A1 is empty 

    Sheets("Tratamento").Range("A:A").Copy Sheets("Dados").Range("A1") 

Case False ' paste to next col 

    Sheets("Tratamento").Range("A:A").Copy Sheets("Dados").Range("XFD1").End(xlToLeft).Offset(0, 1) 

Что это проделывается Начиная с конца второго листа и выбора столбца справа от последнего столбца со значением. Это означает, что вы не будете пропускать какие-либо столбцы и что у вас нет других данных на странице.

+0

Именно то, что я хотел. Большое спасибо. –

0

Как насчет этого?

Sub Insert_Data() 

Sheets("Tratamento").Range("A1").Copy Destination:=Sheets("Dados").Range("A1") 
For I = 2 To Sheets("Tratamento").Cells(Rows.Count, 1).End(xlUp).Row 

' Made change on this line 
Sheets("Tratamento").Range("A" & I).Copy Destination:=Sheets("Dados").Range("A" & I) 

Next I 

End Sub 

Или это слишком упрощено? Может, я не понял ваш вопрос?

+0

Привет, Это не работает. Попробуйте объяснить: если на столбце A на листе 2 уже есть данные, тогда скопируйте на colunm B, если в столбцах A и B есть данные, тогда скопируйте их на colunm C. Я не знаю, как проверить, является ли colunm A, B, C пустым для получения значения. –

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