
こんにちは、お忙しいところ、よろしくお願いいたします。
売買シートのN11とO11を日毎推移シートに転写するマクロを作っていますが、売買シートに行を追加、削除をすると行位置がずれます。これを自動で変わるようにしたいと思いますが、わかりません。良い方法はありませんか。
売買シート
行を追加
g = .Row - 3
.ListObject.ListRows.Add g
行を削除
Rows(i).Delete 'i行目を削除
日毎推移シート
Sub Macro1()
'
Dim FC As Object '当日
Dim FC2 As Object '前日
Set FC = Sheets("日毎推移").Range("A:AC").Find(What:=Date, LookAt:=xlWhole)
Set FC2 = Sheets("日毎推移").Range("A:AC").Find(What:=Date - 1, LookAt:=xlWhole)
If Not FC Is Nothing Then
FC.Offset(, 1).Resize(1, 1).Value = Sheets("売買").Range("N11").Value ---ここです。
FC.Offset(, 2).Resize(1, 1).Value = Sheets("売買").Range("O11").Value ---ここです。
Set 当日金額 = FC.Offset(, 1).Resize(1, 1)
Set 前日金額 = FC2.Offset(, 1).Resize(1, 1)
FC.Offset(, 3).Resize(1, 1).Value = 当日金額 - 前日金額
Else
MsgBox "今日の日付が見つかりません"
End If
Sheets("日毎推移").Select
End Sub
No.3ベストアンサー
- 回答日時:
2つのセル(合計1、合計2)について、位置が変動するということですね?
売買シートについて、こちらの「セルの「名前」をつける」の手順で、名前をつければよいです。
https://getnavi.jp/business/79018/
No.5
- 回答日時:
ListObject ってことは、テーブルですよね?
その上で、11行目は合計行なんですよね?
テーブルの合計行であれば、TotalsRowRange プロパティで取得できるので、これを参照するようにすれば良いと思います。
No.4
- 回答日時:
No2です。
>商品グループの最後の行に合計を出しています。
であるなら、「最後の行のN列、O列」という決め方をすることで対応できるのではないでしょうか?
(これが、No2に書いた手操作時の決め方に該当します)
あるいは、そこに「合計」という見出しがあるのなら、それを探して対象行を決めても宜しいでしょう。
(他に、「合計」という見出しが無いことが条件ですが・・)
とは言え、どうやら対象は固定のセルのようですので、No1様がご回答なさっている「名前の定義」を利用するのが一番簡単かもしれませんね。
No.2
- 回答日時:
こんにちは
>売買シートのN11とO11を日毎推移シートに転写するマクロを作っています~
ご質問の内容から想像すると、「N11とO11」ではないということですよね?
もし手作業で行う場合は、どうやってその「N11とO11」を決めているのでしょうか?
(無条件で、N11、O11セルならば、ご提示のコードで良いはず)
その決める手順で、マクロからも対象セルを決定するようにしておけば宜しいでしょう。
(例えば、どこかに見出しがあってその行のN列とO列の値とか・・)
気になるのは、どう使うのかは不明ですが「行を削除」のようなコードが見られるので、対象となる行そのものが削除されてしまうことはないのでしょうね?
No.1
- 回答日時:
セルに名前を付けると良いと思います。
名前の付け方
https://getnavi.jp/business/79018/
利用の仕方
https://www.moug.net/tech/exvba/0050107.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Excel(エクセル) マクロで特定日より1日前の日を求めたい 6 2022/05/08 09:23
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Excel(エクセル) EXCEL マクロで行を挿入して貼り付けようとするとエラーになる。 2 2022/05/24 09:43
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Excel(エクセル) マクロで列を加えたら上手くいかなくなりました。 2 2022/05/23 17:59
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
- Excel(エクセル) excel でグループの最後に行を追加。 3 2022/06/14 13:14
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで条件に一致したセル...
-
Excelの「0」だけ非表示、小数...
-
Excelで複数シートの選択セルを...
-
エクセルで1月0日と表示される!!
-
ExcelでTODAY関数を更新させな...
-
日付が未入力の際はゼロか、空...
-
エクセルで、加筆修正したセル...
-
Excelシートの保護時にデータの...
-
エクセルについて
-
EXCELのハイパーリンクのセルを...
-
ハイパーリンク で『指定された...
-
複数シートの同じセル内容を1シ...
-
シート参照で変数を使いたい(EX...
-
Excelのファイル容量が減らない...
-
エクセルで複写のように自動入...
-
別シートのセルを絶対参照にする
-
エクセルで20万行あるシート...
-
エクセルで特定の文字を打つと...
-
(Excel)あるセルに文字を入力...
-
エクセルの文字
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
iPhoneのExcelアプリで、別のシ...
-
Excelの「0」だけ非表示、小数...
-
Excelで複数シートの選択セルを...
-
Excelシートの保護時にデータの...
-
エクセルで条件に一致したセル...
-
エクセルで1月0日と表示される!!
-
日付が未入力の際はゼロか、空...
-
ExcelでTODAY関数を更新させな...
-
EXCELのハイパーリンクのセルを...
-
別シートのセルを絶対参照にする
-
Excelでスクロールすると文字が...
-
複数シートの同じセル内容を1シ...
-
マクロ 新しいシートにデータ...
-
エクセルで複写のように自動入...
-
エクセルで、加筆修正したセル...
-
エクセル ハイパーリンクで画像...
-
ハイパーリンク で『指定された...
-
エクセルで20万行あるシート...
-
エクセルで特定のセルの値を別...
-
INDIRECT(空白や()がある文字列...
おすすめ情報
ありがとうございます。
N11を合計1と O11を合計2と名前を付けておくと 1行追加すると N12、O12の位置が合計1、合計2となるわけですか。 これはマクロでつけずに、売買シートの設定でつけておくことで良いのですか?。
Range("N11")を 合計1
Range(”O11”)を合計2
こんにちは。売買シートのN11とO11を日毎推移に転写をします。しかし新規で新しい商品を追加すると行が1行増えてN12,O12となります。削除もありますが、N11,O11の合計の入ったところは削除にはなりません。商品グループの最後の行に合計を出しています。