- ベストアンサー
Excel上で関数を入れるコード For Next
- Excel上でC列に関数を入れるコードを教えてください
- エクセルシート上の関数のB1をB2、B3、B4と変化させて行きたいです
- 具体的な方法を教えていただけないでしょうか
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
次の様なコードにすれば、For~Nextは必要ありません。 Sub QNo9234684_Excel上で関数を入れるコード_For_Next() With Sheets("Sheet1") .Range("C1:C" & .Range("A" & Rows.Count).End(xlUp).Row).FormulaR1C1 = _ "=WEEKNUM(RC[-1])-WEEKNUM(DATE(YEAR(RC[-1]),MONTH(RC[-1]),1))+1" End With End Sub またこの程度であれば、タイトルとEnd Subを除いて他の部分を1行で済ませてしまっても良い位です。 Sub QNo9234684_Excel上で関数を入れるコード_For_Next() Sheets("Sheet1").Range("C1:C" & Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row).FormulaR1C1 = "=WEEKNUM(RC[-1])-WEEKNUM(DATE(YEAR(RC[-1]),MONTH(RC[-1]),1))+1" End Sub
その他の回答 (4)
- ushi2015
- ベストアンサー率51% (241/468)
こんにちは このようなケースの場合はループさせる必要も無い事を覚えた方がいいです。 Sub 私の書いた第何週目かをC列に求めるコード() Dim i As Long i = Range("a1").End(xlDown).Row With Range("C1:C" & i) .Formula = "=WEEKNUM(B1)-WEEKNUM(DATE(YEAR(B1),MONTH(B1),1))+1" End With End Sub
お礼
一発で入りました! メモリを食わずにすむかもしれません。 for next と併用して、メモリを食いたくないときに使用したいです。 ありがとうございます。
- mshr1962
- ベストアンサー率39% (7417/18945)
"=WEEKNUM(" & Cells(i, 2) & ")-WEEKNUM(DATE(YEAR(" & Cells(i, 2) & "),MONTH(" & Cells(i, 2) & "),1))+1" ですね。 Cels(i,2) の両端にある"は不要です。B列のi行を意味する変数自体を文字列にしてるため意味ありません。 それと(の数が意味不明に多すぎますし、最後の)も意味ありません。
お礼
動作確認できました。 ありがとうございます。 "は文字列と認識させてしまっていました。
- f272
- ベストアンサー率46% (8529/18257)
#1です。 さっきは適当なことを書いてしまいました。 Sheets("Sheet1").Cells(i, 3).Formula = _ "=WEEKNUM(B" & i & ")-WEEKNUM(DATE(YEAR(B" & i & "),MONTH(B" & i & "),1))+1" これでよい。
お礼
動作確認できました。 ありがとうございます。
- f272
- ベストアンサー率46% (8529/18257)
"=WEEKNUM(" & "(Cells(i, 2)"&")-WEEKNUM(DATE(YEAR(" & "(Cells(i, 2)" &"),MONTH(" & "(Cells(i, 2)" & "),1))+1)" ですね。「"」がひとつ足りません。
お礼
ありたとうございます。
お礼
RC[-1]この形式はマクロ記録で表示されますね。 Range("A" & Rows.Count).はカッコ内にカウントが入っていて画期的です。 ありがとうございます。