だから私はプロジェクトに取り組んでおり、VBAコードを取得して、セルM3にある式をデータセットの最後まで描画するようにしています。列Lをベースとして使用して、データが含まれる最後のセルが何であるかを判断しています。私の式は、2つのセルをテキストコンマで連結したものです。したがって、Excelでの式は= G3& "、"&L3です
セルM4で= G4& "、"&L4セルM5が= G5& "、"&L5などになるように、Excelでこの式を作成します。
私のコードは次のようになります:
Range("$M$3").Formula = Range("G3") & (",") & Range("L3")
Dim Lastrow As Long
Application.ScreenUpdating = False
Lastrow = Range("L" & Rows.Count).End(xlUp).Row
Range("M4").FormulaR1C1 = Range("G4") & (",") & Range("L4")
Range("M4").AutoFill Destination:=Range("M4:M" & Lastrow)
ActiveSheet.AutoFilterMode = False
Application.ScreenUpdating = True
私の出力は、セルM3からデータセットの最後までテキスト値をプルダウンするだけです。修正を探すために数時間検索しましたが、目的を達成しようとしているものを見つけることができないようです。
それは実際には1つのライナーです。 .Autofill
を使用する必要はありません
Range("M3:M" & LastRow).Formula = "=G3&"",""&L3"
または、FillDownを使用することもできます
Range("M3") = "=G3&"",""&L3": Range("M3:M" & LastRow).FillDown
同様の質問がある人のために、この投稿を見つけてください(私がしたように)。データセットがテーブルとしてフォーマットされている場合、lastrowがなくてもこれを行うことができます。
Range("tablename[columnname]").Formula = "=G3&"",""&L3"
真のワンライナーに。それが誰かを助けることを願っています!
素晴らしい答えです!次のタイトルセルまで、下の空のセルに適用されるセルにタイトルがあった列の空のセルを埋める必要がありました。
上記のコードを使用して、ここのサンプルシートの下にあるコードを開発しました。このコードをマクロctl/shft/Dとして適用し、タイトルをコピーして列をすばやく実行しました。
---スプレッドシートの例------------ Title1は行2と3にコピーされます。 Title2は、行5および6の下のセルにコピーされます。マクロの2回目の実行後、アクティブセルはTitle3セルになります。
' **row** **Column1** **Column2**
' 1 Title1 Data 1 for title 1
' 2 Data 2 for title 1
' 3 Data 3 for title 1
' 4 Title2 Data 1 for title 2
' 5 Data 2 for title 2
' 6 Data 3 for title 2
' 7 Title 3 Data 1 for title 3
----- CopyDownコード----------
Sub CopyDown()
Dim Lastrow As String, FirstRow As String, strtCell As Range
'
' CopyDown Macro
' Copies the current cell to any empty cells below it.
'
' Keyboard Shortcut: Ctrl+Shift+D
'
Set strtCell = ActiveCell
FirstRow = strtCell.Address
' Lastrow is address of the *list* of empty cells
Lastrow = Range(Selection, Selection.End(xlDown).Offset(-1, 0)).Address
' MsgBox Lastrow
Range(Lastrow).Formula = strtCell.Formula
Range(Lastrow).End(xlDown).Select
End Sub