ある列に(列数は18です:B10~B28)、条件によってABCD・・の記号を付けているのですが、どうしてもダブるものが出てきて
(例えばHが二つ出てきます)困っています。この場合、ダブる記号の下の列の方にダッシュ(’)を付けておくと、次にかけるマクロで処理が可能です。現状では、H’が見当たらないためマクロが止まってしまい、いつもやり直すことになっています。
何とか解消したいのですが、いい方法はないでしょうか?(例えばHが2つあれば下位の方にダッシュを付ける方法)
又、Hそのものの記号がないときがあります。この場合18列の中にHが無いことの確認をしたいのですが、有効な方法がわかりません。
この時は別の対応をするのですが、現状では一度止まってしまいます。大量の資料処理なので止まるとすべてが遅れるので、非常に困っています。
関数でもマクロ対応でも結構です。
教えてください。よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
詳細が不明なため一般的な意見を述べさせていただきます。
>どうしてもダブるものが出てきて
これは致し方ない事です。
しかし、
Hがダブル(2つ以上ある?)と困る現状が不明です。
普通はそれに対応したマクロを組むべきです。
それに対して、「H’と別のコード(?)を割り当てれば問題ない。」ということですので、2つ目以降の処理は完成しているのでしょうか?
>H’が見当たらないためマクロが止まってしまい
>Hそのものの記号がないときがあります
どのようなマクロを構築したがわかりませんが、if構文を使っていませんか?
通常このような「何かを探して、その行に処理を行う」場合には
Findメソッドで対象を設定するのが一般的です。そうすれば2つ目以降の同じコードはFindNextで対応できます。存在しない場合はNothingになりますので、そこで処理をすればいいのです。
参考になるページを紹介しておきます。他にも「VBA Find」で検索すれば使用例が紹介されていますので、参考にしてください。
【Excel VBA入門】Findメソッドで条件に一致するセルを検索する方法
https://valmore.work/find-cell-by-find/
条件に当てはまるセルを検索する(Find/FindNext/FindPreviousメソッド)
https://www.moug.net/tech/exvba/0050116.html
ありがとうございます。
HとH’にするのは、この記号が、別の列Aの中の最大値がH,二番目に大きい数字がH'と仮定して付けた記号です。その記号からまた別の列Bにある数字を Vlookupで導き出すようとしています。もしHとH’があれば、次のステップへ簡単に進むのですが、最大値が二個同一の値である場合は、Hが二個になってしまい、 Vlookup で列Bから抽出する機能が働かずマクロが止まってしまうのです。
よって、止まった時は、手動で、列の下の方のHをH’に書き直し、再度マクロをかけなおしています。
データーが大量にあり、いちいち止まっていると大変なロスで、何とかしたいのです。
ご記載のFindメソッドについては、かなり期待できそうで、一度研究してみます。本当にありがとうございました。
On Error Resume Next だと、H’に該当する回答を得られないまま進みますので、最終的にデーターの解析が間違った物になり、失敗します。
ご記載のReplaceの処理は私には難しすぎるようで、今回はパスいたします。
本当にありがとうございました。
No.4
- 回答日時:
#2です
H’の処理をしないなら
On Error Resume Next で飛ばす
H’もHと同じ処理をするなら 乱暴かも知れませんが、
Replace(Cells(i, "B"), "'", "") 探す値(条件キー側)の’を消す
For i = ? To ??
If Cells(i, "???") = Replace(Cells(i, "B"), "'", "") Then
とか、、
ありがとうございます。
On Error Resume Next だと、H’に該当する回答を得られないまま進みますので、最終的にデーターの解析が間違った物になり、失敗します。
ご記載のReplaceの処理は私には難しすぎるようで、今回はパスいたします。
本当にありがとうございました。
No.2
- 回答日時:
こんにちは
内容が分からないのですが、
>(’)を付けておくと、次にかけるマクロで処理が可能です。
HやH’が何を意味するのか、他の処理に影響しないのかなどわかりませんが、
どの様な処理なのでしょうか?
内容が分からないので、想像の範疇です。。
マクロが止まる事が最大の問題なのであれば、
かつ、見当たらない場合に処理をしなくて良いのなら、止まるコードの上に
On Error Resume Next で飛ばすのはどうか、、
また、H 取得のループ内にカンターを設けて(FindNextで探している場合など)>2なら希望処理に分けるとか、、?多分ダメ?
Hは関数で取得しているのでしょうか?マクロなら出力時にカウンターを付け ’ を付加するとかかな。
B列に対して一意のデータをリストや連想配列で作成して、その配列で一律の処理を行うとかでしょうか。
ありがとうございます。
HとH’にするのは、この記号が、別の列Aの中の最大値がH,二番目に大きい数字がH'と仮定して付けた記号です。その記号からまた別の列Bにある数字を Vlookupで導き出すようとしているのです。
ところが、最大値が二個同一の値である場合は、Hが二個になってしまい、 Vlookup で列Bから抽出する機能が働かずマクロが止まってしまうのです。
よって、止まった時は、手動で、列の下の方のHをH’に書き直し、再度マクロをかけなおしています。
データーが大量にあり、いちいち止まっていると大変なロスで、何とかしたいのです。
On Error Resume Next だと、H’に該当する回答を得られないまま進みますので、最終的にデーターの解析が間違った物になり、失敗します。
ご記載の【リストや連想配列】の処理は私には難しすぎるようで、今回はパスいたします。
本当にありがとうございました。
No.1
- 回答日時:
>列数は18です:B10~B28
その範囲なら、列は1列で行が19行になります。
1行目は項目名とかでデータが18行ってこと?行列の説明はきちんとしてください。
関数で、データ自体に’を付けるのは別セルなどでないと無理かと思います。
それに「H」と「H’」はExcelは別データと判断しますが他の処理に影響はないのでしょうか?
別列で重複のフラグを付ける方がいいかと思うのですが。
ありがとうございます。
列数については、ご指摘の通りで、間違っていました。
今後注意します。
別列でフラグを付ける方法がわからないので、また研究しなおします。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの表でダブりを解消する方法を、教えてください。 5 2023/04/12 12:11
- Visual Basic(VBA) tatsumaru77様 昨日回答して頂いたものです。 すみませんが、昨日の質問で1つ補足があります 1 2022/05/15 15:06
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- 工学 コンデンサメインの降圧回路 6 2022/09/02 17:20
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) エクセルのマクロ作成について教えてください 5 2023/02/20 00:39
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
- Excel(エクセル) エクセルのデータ整形について 3 2022/11/12 00:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
EXCELのVBAでRange("A1:C4")を...
-
一つのTeratermのマクロで複数...
-
Excel VBAからAccessマクロを実...
-
メッセージボックスのOKボタ...
-
非表示の列をすべて削除するマクロ
-
エクセルに張り付けた写真のフ...
-
エクセルで別のセルにあるふり...
-
ExcelのVBA。public変数の値が...
-
ExcelVBAでPDFを閉じるソース
-
VBA アドインについて お詳しい...
-
TERA TERMを隠す方法
-
マクロで空白セルを詰めて別シ...
-
EXCELマクロでのThisisWor...
-
サクラエディタ・マクロ → VSCo...
-
エクセルマクロ自動更新
-
[初心者です]VBAで指定列か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
エクセルで別のセルにあるふり...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
ExcelVBAでPDFを閉じるソース
-
EXCELのVBAでRange("A1:C4")を...
-
Excel VBAからAccessマクロを実...
-
TERA TERMを隠す方法
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
マクロ実行時、ユーザーフォー...
-
Excelのマクロについて教えてく...
-
ソース内の行末に\\
おすすめ情報