えー・・っと。初めて質問するものです。
エクセルの関数だけでは 問題が解決できないので、マクロに挑戦してますが、息詰ってしまいました。
はじめに、合計表のB列とJ列に 1と入力されたらaと記入、2と入力されたらb、3と入力されたらcという風にマクロを作成。
ココまではできたのですが・・・。
このB列とJ列。それぞれ、aのシート、bのシート、cのシートと 入力された時点で
それぞれのシートにコピー振分けしたいのですが・・・。うまくいきません。
コピーしたいデータは 合計表のA列からG列のaに変更になってるデータの一行を部分。(合計表は2分割されてる表なので、B列とJ列)
わかりづらいですかね?言いたいことが伝わってるといいのですが・・・。
作ってみたのはこんな感じです。
private sub worksheet_change
dim as integer
for i=2to63
if cells(i,"a").value=1then
cells(i,"b")="a"
endif
next
* b,cも j列の場合も同様につくりました。
dim cl as range
set cl=range("B:B").find(what:="a",lookat:=xlwhole)
if cl=xlwhole then
cells("A:G")=sheet2("asheet")
sheets("合計表").copy before:=cells("A:G")
ここまでで・・わけがわからなくなりパニックになりました。
そもそもできるのか?という謎も生まれ・・・。
よろしく御願いします。
No.2ベストアンサー
- 回答日時:
最初に提示されたコードでは、A列の数値によってB列に文字を入力していますが、補足内容を見る限り、B列の値を文字に変換しているように思えます。
どちらでしょうか?振り分けは、「エクセル 振り分け」などと検索してみるといろいろ出てきます。ひとつ参考に挙げておきます。多くは一度だけ振り分けるもののようです。動的に更新するためには、元のデータに削除や改変を行うかどうか、更新のタイミング(1セルごと、1行ごと、シート切り替え時、ファイル保存時、ボタンを押したときなど)を検討する必要があります。
ちなみにありがとうポイントは、問題が解決して締め切るときに良回答を選択すると発生します。
参考URL:http://oshiete1.goo.ne.jp/qa2668574.html
この回答への補足
ぉ!同じ質問があったのですね?
探し方がわからずにいたので、助かります。
参考にしてやってみますね?
ありがとうございます。
それと、
>補足内容を見る限り、B列の値を文字に変換しているように思えます。どちらでしょうか?
補足内容のとおり、B列に1と入力されたら 値をaというように変換です。
説明が下手ですみませんでした。
検索のしかたもためになります。
ほんと、ありがとうございます。
No.1
- 回答日時:
Private Sub Worksheet_Change(ByVal Target As Range)
となっていると思いますが、ここでTargetというのがすでにRange型の変数になっており、変更したセルを示します。これを用いた方が楽です。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Application.Intersect(Range("A2:A63"), Target) Is Nothing Then Exit Sub '変更セルが対象外のときはコードを実行しない
Select Case Target.Value
Case 1:
Target.offset(, 1).Value = "a"
Case 2:
Target.offset(, 1).Value = "b"
Case 3:
Target.offset(, 1).Value = "c"
End Select
End Sub
振り分け操作は具体例を示していただけないと分かりません。特に二分割のあたりが謎です。
ちなみに、関数でもできることはできます。
わぁーぃ!今日は回答はこないかなぁ?って思ってたので
早速の回答うれしいです!ありがとうございます。
試してみます。
それと、やっぱり・・具体例をしないとわかりづらいですよね?
えー・・っと。
A B C D E F G H I J K L M N O
1 k 1 123 456 258 159 214 f 2 259 254 215 653 852
2 g 2 t 3
3 r 3 l 2
4 a 2 v 1
5 h 3 o 1
6 y 1 m 2
7 z 1 d 2
8 u 2 s 3
9 w 2 q 3
10 z 3 x 1
↑ ↑
*1のときA *1のときA
*2のときB *2のときB
*3のときC *3のときC
*AからGまでの部分のそれぞれ1行ずつ *IからOの部分のそれぞれ1行ずつ
こんな感じなんですがわかりますか?
確認画面でどうしてもずれてしまぅ・・。
わかりますか? H列は 空白で区切りとして使ってます。
よろしくおねがいします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) 2つのシートの任意のセルの番号が一致したら、一致した行をコピーする VBA 2 2023/06/19 20:48
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBAで、シート間の転記するコードをFOR~NEXTで教えてください。 9 2023/04/30 20:04
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
オートフィルタのリストを順番...
-
WEB上の表の列コピー選択方法は?
-
エクセルで作成した縦に長い表...
-
【エクセル】行挿入で数式もい...
-
一つのシートの中に複数のペー...
-
ACCESSのデータをEXCELに貼り付...
-
ピボットテーブル→参照が正しく...
-
一太郎にエクセルの表を貼り付...
-
Excelのセルの中の見えないデー...
-
Excelピボットテーブルで 総計...
-
マクロの記述をもっとシンプル...
-
メモ帳からエクセルに貼り付け...
-
エクセルVBAで、行コピーを複数...
-
エクセルで名簿作成中、名前順...
-
エクセルの列幅
-
VBA csvを100万行ずつ各...
-
Excelの数式のコピーで列移動で...
-
桐に入力した住所をコピーして...
-
勤続年数の平均を求めたい時の関数
-
Excelでセル参照したとき、書式...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
一つのシートの中に複数のペー...
-
WEB上の表の列コピー選択方法は?
-
エクセルで作成した縦に長い表...
-
【エクセル】行挿入で数式もい...
-
オートフィルタのリストを順番...
-
メモ帳からエクセルに貼り付け...
-
エクセルのリストから欠番を拾...
-
Excel 表から値をさがして隣の...
-
ピボットテーブル→参照が正しく...
-
Excelピボットテーブルで 総計...
-
Excelの数式のコピーで列移動で...
-
エクセルVBAで、行コピーを複数...
-
エクセルの列幅
-
エクセルの関数の使い方 繰越...
-
Excelで検索結果をテキストボッ...
-
エクセルで各ページに同じ文書...
-
エクセル シートのコピーをリ...
-
VBA csvを100万行ずつ各...
-
地番を順に並べたい。
-
エクセルに詳しい方、助けてく...
おすすめ情報