![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
入力表と集計表を作成し入力シートの入力表にデータを入れてマクロを実行すると集計表にレコード転記されるようにしました。
集計表シートに転記することは出来たのですが入力表でデータを修正した後集計表に上書き保存する方法がわかりません。
もしご存じの方がいたらご教示お願いいたします。
下記のコードで転記をしています。
Sub ボタン1_Click()
Dim lastRow As Long
lastRow = Sheet2.Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("集計表").Cells(lastRow + 1, 1) = Worksheets("入力表").Cells(1, 2)
Worksheets("集計表").Cells(lastRow + 1, 2) = Worksheets("入力表").Cells(2, 2)
Worksheets("集計表").Cells(lastRow + 1, 3) = Worksheets("入力表").Cells(3, 2)
Worksheets("集計表").Cells(lastRow + 1, 4) = Worksheets("入力表").Cells(4, 2)
Worksheets("集計表").Cells(lastRow + 1, 5) = Worksheets("入力表").Cells(5, 2)
Worksheets("集計表").Cells(lastRow + 1, 6) = Worksheets("入力表").Cells(6, 2)
Worksheets("集計表").Cells(lastRow + 1, 7) = Worksheets("入力表").Cells(7, 2)
Worksheets("集計表").Cells(lastRow + 1, 8) = Worksheets("入力表").Cells(8, 2)
Worksheets("集計表").Cells(lastRow + 1, 9) = Worksheets("入力表").Cells(2, 3)
Worksheets("入力表").Cells(1, 2).Clear
Worksheets("入力表").Cells(2, 2).Clear
Worksheets("入力表").Cells(3, 2).Clear
Worksheets("入力表").Cells(4, 2).Clear
Worksheets("入力表").Cells(5, 2).Clear
Worksheets("入力表").Cells(6, 2).Clear
Worksheets("入力表").Cells(7, 2).Clear
Worksheets("入力表").Cells(8, 2).Clear
Worksheets("入力表").Cells(2, 3) = ""
MsgBox "転記しました。"
End Sub
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
#1です
訂正します。;;
間違え
.Range("B1:B8", "C2").ClearContents
正しくは
.Range("B1:B8, C2").ClearContents
書式などすべてをクリアーするなら.Clearで
No.1
- 回答日時:
こんばんは、
>修正した後集計表に上書き保存する方法がわかりません。
新規で書き込む時は、
lastRow = Sheet2.Cells(Rows.Count, 1).End(xlUp).Row
lastRow + 1
で行番号を特定していますが、上書きする場合、対象の行番号をどのように取得するかが、問題です。
つまり、入力表のどこかのセル(一意の値が望ましい)の値で
集計表の該当セルを特定して行番号を取得してlastRow + 1の代わりに使えば、その行の値が上書きされます。
入力表のB1セルの値が一意の値ならその値をキーワードにして集計表のA列を探せば良いと思います。 探し方は色々方法があります。
一意の値で1行目からデータがあるなら、ExcelのMATCH関数でも取得できると思いますし、Findや範囲をべたにループしても取得できます。
書き換えを行う時の入力表の情報を精査してどの値で集計表の該当セルを探すか考えてみましょう。
少し気になったのですが、オブジェクトSheet2は、Worksheets("集計表")の事でしょうか?もし違うなら、違うシートの新規行(lastRow + 1)を取得する意味が解りません。。同じなら、オブジェクト名にするかシート名にするか、またはインデックスなどで統一した方が後に良いと思います。
分かり難いかも知れませんが、ご質問のコードを添削して、
入力表C2セルの値で探し出してその行を上書きするサンプルです。
Sub ボタン1_Click()
Dim TrgRow As Long
Dim keyword As String
Dim Ary
Dim SH_集計表
Set SH_集計表 = Worksheets("集計表")
keyword = Worksheets("入力表").Range("C2").Value
On Error Resume Next
TrgRow = SH_集計表.Range("I1", SH_集計表.Cells(Rows.Count, "I").End(xlUp)) _
.Find(What:=keyword, LookIn:=xlValues, LookAt:=xlWhole).Row
If TrgRow >= 1 Then
With Worksheets("入力表")
Ary = .Range("B1:B8")
SH_集計表.Cells(TrgRow, 1).Resize(, 8).Value = _
Application.Transpose(Ary)
SH_集計表.Cells(TrgRow, 1).Offset(, 8).Value = .Cells(2, "C").Value
.Range("B1:B8", "C2").ClearContents
End With
MsgBox "転記しました。"
Else
MsgBox "該当行が見つかりません。"
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。特にものすごく怒られたときとか、とんでもない損害を与えてしまったときとか…。
-
抽出したデータを修正して元のセルに上書きしたい
Access(アクセス)
-
VBAでシートコピー後、シート名が重複している時の処理
Access(アクセス)
-
【マクロ】転記ツール。転記先にデータがある場合、上書きするか消すか質問をして欲しい
Excel(エクセル)
-
-
4
エクセルのマクロで検索・抽出したデータを修正及び更新して元データに反映
Excel(エクセル)
-
5
エクセルで特定のシートのみ自動上書き保存する方法
Visual Basic(VBA)
-
6
EXCEL VBA 転記 条件分岐 新規転記 上書転記 プログラム
Visual Basic(VBA)
-
7
VBAで検索後、行番号取得し上書き保存
Excel(エクセル)
-
8
VBA 空白行に転記する
Visual Basic(VBA)
-
9
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
10
VBA 数式を残して値をクリアについて
Excel(エクセル)
-
11
【VBA】特定の条件でセルをコピー
Visual Basic(VBA)
-
12
エクセルマクロで上書きして貼り付けの方法は
その他(Microsoft Office)
-
13
エクセルで「入力」と「蓄積」の簡単なデータベース
Excel(エクセル)
-
14
VBA 値と一致した行の一部の列のデータを転記について教えてください
Visual Basic(VBA)
-
15
エクセルVBAで、ある指定した文字を含む行だけを選択したいのですが、、 例えば、1〜20行目までに"12304706"
Excel(エクセル)
-
16
エクセルで入力シートから別シートに蓄積方法について
Excel(エクセル)
-
17
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Java、配列の問題を教えて欲し...
-
マクロのエラー
-
VBAについて質問。別シートに転...
-
ファイル出力のテストについて
-
Caps Lockキーの解除
-
Excel2010の並べ替えで行の高さ...
-
エクセルで複数の勤務時間ごと...
-
エクセルで一番下の日付や時刻...
-
Excelでカーソルが逆に動く
-
エクセルで作った書類に、パン...
-
リース初心者です 利子率の計...
-
エクセル関数で {=TABLE(,セル...
-
EXCEL関数 上四桁目を3捨4入
-
オーバレイ機能を解除する方法は?
-
VBA 指定のセルが変更されても...
-
プルダウンで選択すると隣のセ...
-
エクセルで離れたセルを離れた...
-
エクセルでの残業時間の計算(...
-
バーコードリーダー Excel 連動
-
60進法で複数セルの足し算、引...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
splitを使ってスペース位置で文...
-
上書き保存されない
-
VBAについて質問。別シートに転...
-
VBAで連番に色を付けたい
-
Java、配列の問題を教えて欲し...
-
Mathematicaで関数の最大値を求...
-
VBAを教えていただきたいです。...
-
マクロのエラー
-
JavaScriptでキャッシュクリア...
-
★部分でインデックスが有効範囲...
-
ファイル出力のテストについて
-
アクセス解析で自社HPの過去か...
-
VBAで試験結果の集計ツールを作...
-
郵便番号から都道府県・郡・市...
-
Caps Lockキーの解除
-
Excel2010の並べ替えで行の高さ...
-
リース初心者です 利子率の計...
-
エクセルで複数の勤務時間ごと...
-
エクセル関数で {=TABLE(,セル...
-
Excelでカーソルが逆に動く
おすすめ情報