1
動的ワークシートの値を列のタイトルでソートされた「データベース」にインポートします。あなたが見ることができるように、私は働くものを掻き集めましたが、それは非常に遅く、値だけをコピーしません。 シートの最初の行はタイトルで、2番目の行とさらに下の行はコピーしたい値です。ダイナミックセルから特定の名前の列に値をコピーする
Sub Copypasta()
Sheets("copypasta").Select
Sheets("copypasta").Range("A2").Activate
While Not ActiveSheet.Cells(1, ActiveCell.Column) = ""
t1 = ActiveSheet.Cells(1, ActiveCell.Column)
Selection.Copy
Set MyActiveCell = ActiveCell
Sheets("Database").Activate
lnCol = Sheets("Database").Cells(1, 1).EntireRow.Find(What:=t1, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Column
lnRow = Sheets("Database").Range("a65536").End(xlUp).Row
If lnCol > 1 Then Sheets("Database").Cells(lnRow, lnCol).Activate Else Sheets("Database").Cells(lnRow, lnCol).Offset(1, 0).Activate
ActiveSheet.Paste 'xlPasteValues
Sheets("copypasta").Activate
MyActiveCell.Offset(0, 1).Activate
Wend
End Sub
PasteSpecial xlPasteValuesを使用するか、セルの値を直接設定しようとしましたが、動作させることができませんでした。私はそれがスローするすべてのエラーを検出し、エラーが発生した場所のコードを検索しています。
これはすごい、ほぼ完璧に動作します!ありがとうございました! 1列目の行を1行だけ下にさらにペーストします。 これを次のように修正しました: 'If lnCol> 1 Then Sheets(" Database ")セル(lnRow、lnCol)。Else Sheets(" Database ")をアクティブにするセル(lnRow、lnCol).Offset(1、0) .Activate' – KLang
@KLangよろしくお願いします。答えの左側にある灰色のチェックマーク(緑色に変わります)をクリックすることで、これを「回答」とマークする部分が表示されます。 –