アプリ版:「スタンプのみでお礼する」機能のリリースについて

vbaの質問宜しくお願い致します。
シート1のC列とF列にランダムに数字が有るとします

シート2に2枚目の写真
みたいにやりたいのですが可能でしょうか?
(列の最後は決まってないです、)

言葉で申し上げますと
シート1のC列をシート2のB列
シート1のF列をシート2のF列にコピペします。

シート2の作業は
C列にB列とF列の和
D列にC列とF列の和
E列にD列とF列の和
(横にF列のみ足してます。)

☆☆☆【H列のみF列-B列+1】☆☆☆

I列にH列とF列の和
J列にI列とF列の和
K列にJ列とF列の和
(横にF列のみ足します。)

宜しくお願い致します。

「vbaの質問宜しくお願い致します。 シー」の質問画像

質問者からの補足コメント

  • 2枚目の写真です、
    (結果)

    「vbaの質問宜しくお願い致します。 シー」の補足画像1
      補足日時:2019/08/14 13:35

A 回答 (2件)

マクロの記録を使用すれば簡単に出来ますが、とりあえずコードを記載します


--------------------------------------------------------------------------------
Sub Sample1()
 
 Dim intR As Integer
 
 intR = 1
 Do Until Sheet1.Cells(intR, 3).Value = ""
  With Sheet2
   .Range("B" & intR).FormulaR1C1 = "=Sheet1!RC[1]"
   .Range("C" & intR).FormulaR1C1 = "=RC[-1]+RC[3]"
   .Range("D" & intR).FormulaR1C1 = "=RC[-1]+RC[2]"
   .Range("E" & intR).FormulaR1C1 = "=RC[-1]+RC[1]"
   .Range("F" & intR).FormulaR1C1 = "=Sheet1!RC"
   .Range("H" & intR).FormulaR1C1 = "=RC[-2]-RC[-6]+1"
   .Range("I" & intR).FormulaR1C1 = "=RC[-1]+RC[-3]"
   .Range("J" & intR).FormulaR1C1 = "=RC[-1]+RC[-4]"
   .Range("K" & intR).FormulaR1C1 = "=RC[-1]+RC[-5]"
  End With
  intR = intR + 1
 Loop
 
End Sub
--------------------------------------------------------------------------------
    • good
    • 1
この回答へのお礼

色々教えて頂きどうもありがとうございます。

お礼日時:2019/08/15 20:09

こんなふうにすれば、と思います。


実際は、同じ位置ではないでしょうから、i を出す範囲、貼り付ける列の最初のセルを書き換えしてください。

'//標準モジュール
Sub FormulaCopies()
 Dim i As Long
 Dim sh2 As Worksheet
 Set sh2 = Worksheets("Sheet2") '写される側を登録
 With sh2
  i = Worksheets("Sheet1").Cells(Rows.Count, 3).End(xlUp).Row  'ここが大事
  .Range("B1").Resize(i).FormulaLocal = "=Sheet1!RC[1]"
  .Range("F1").Resize(i).FormulaLocal = "=Sheet1!RC"
  .Range("H1").Resize(i).FormulaLocal = "=RC6-RC[-6]+1"
  .Range("C1:E1").Resize(i).FormulaLocal = "=RC[-1]+RC6"
  .Range("I1:K1").Resize(i).FormulaLocal = "=RC[-1]+RC6"
 End With
End Sub
    • good
    • 1
この回答へのお礼

お忙しいところどうもありがとうございました。

お礼日時:2019/08/15 20:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!