2

誰もが私を助けることができますか?データは常に列 A、シート 1 であり、シート 2 の空の列にコピー アンド ペーストします。最初にデータは列 A シート 2 に移動し、2 回目 (シート 1 列 A に配置した他のデータ) は列 B シート 2 に移動します。このコードを見つけましたが、列 A のシート 2 にデータを配置しました。

    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
4

2 に答える 2

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) 

これが行っていることは、2 番目のシートの最後から開始し、最後の列の右側にある列を値で選択することです。これは、列をスキップせず、ページに他のデータがないことを前提としています。

于 2013-03-08T21:18:16.023 に答える
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

それともこれは単純すぎますか?多分私はあなたの質問を理解していませんでしたか?

于 2013-03-08T21:06:37.290 に答える