Excel VBA 質問スレッド №1036 (解決済)
【実行時エラー13 型が一致しません】の解決方法を教えてください。
投稿者 : maruko 投稿日時 : 2022/10/07(Fri) 13:43:23 OS : Windows 10 EXCEL : Office 365
お世話になります。
vba初心者です。単純なことだと思うのですが、
解決できず、手をこまねいています。
下記の用に、一部の行(ナンバ、支部、店名、町名)だけにデータ入っており、
それ以下が空白となるデータがあります。
※※※※※※※※※※※※※※※※※※※※※※
ナンバ 支部 店名 町名 支払い方法
1 XXX YYY ZZZ 方法1
方法2
方法3
方法4
方法5
方法6
方法7
方法8
2 XXX YYY ZZZ 方法1
方法2
方法3
方法4
方法5
方法6
方法7
方法8
※※※※※※※※※※※※※※※※※※※※
この空白行を埋めるコードを書いてみたのですが、実行時エラーが出ました。
いろいろ見てみたのですが、解決方法わかりません(単純な間違いだと思うのですが……)。
上記のコードの間違いわかりましたら、お教えいただけないでしょうか。
お手数おかけしますが、よろしくお願いします。
お世話になります。
vba初心者です。単純なことだと思うのですが、
解決できず、手をこまねいています。
下記の用に、一部の行(ナンバ、支部、店名、町名)だけにデータ入っており、
それ以下が空白となるデータがあります。
※※※※※※※※※※※※※※※※※※※※※※
ナンバ 支部 店名 町名 支払い方法
1 XXX YYY ZZZ 方法1
方法2
方法3
方法4
方法5
方法6
方法7
方法8
2 XXX YYY ZZZ 方法1
方法2
方法3
方法4
方法5
方法6
方法7
方法8
※※※※※※※※※※※※※※※※※※※※
この空白行を埋めるコードを書いてみたのですが、実行時エラーが出ました。
Sub 練習改()
Dim 行番号 As Integer
For 行番号 = 5 To 100
If Range(Cells(行番号, 1), Cells(行番号, 4)).Value = "" Then
Range(Cells(行番号, 1), Cells(行番号, 4)).Value = Range(Cells(行番号 - 1, 1), Cells(行番号 - 1, 4))
End If
Next 行番号
End Sub
いろいろ見てみたのですが、解決方法わかりません(単純な間違いだと思うのですが……)。
上記のコードの間違いわかりましたら、お教えいただけないでしょうか。
お手数おかけしますが、よろしくお願いします。
スポンサーリンク
[返信 1] Re : 【実行時エラー13 型が一致しません】の解決方法を教えてください。
投稿者 : ngk 投稿日時 : 2022/10/07(Fri) 16:12:31
なんかよくわかんないけど・・・
仮に
| A | B | C | D | E
1 |ナンバ |支部 |店名 |町名 |支払方法
2 | 1 |XXX |YYY |zzz |方法1
3 |///////|///////|///////|///////|方法2
4 |///////|///////|///////|///////|方法3
5 |///////|///////|///////|///////|方法4
6 |///////|///////|///////|///////|方法5
7 |///////|///////|///////|///////|方法6
8 |///////|///////|///////|///////|方法7
9 |///////|///////|///////|///////|方法8
10 | 2 |XXX |YYY |zzz |方法1
みたいな感じで車線部分を詰めたい、ってことでいいんですか?
なんかよくわかんないけど・・・
仮に
| A | B | C | D | E
1 |ナンバ |支部 |店名 |町名 |支払方法
2 | 1 |XXX |YYY |zzz |方法1
3 |///////|///////|///////|///////|方法2
4 |///////|///////|///////|///////|方法3
5 |///////|///////|///////|///////|方法4
6 |///////|///////|///////|///////|方法5
7 |///////|///////|///////|///////|方法6
8 |///////|///////|///////|///////|方法7
9 |///////|///////|///////|///////|方法8
10 | 2 |XXX |YYY |zzz |方法1
みたいな感じで車線部分を詰めたい、ってことでいいんですか?
[返信 2] Re : 【実行時エラー13 型が一致しません】の解決方法を教えてください。
投稿者 : ngk 投稿日時 : 2022/10/07(Fri) 16:13:54
表を書くのって難しい・・・
表を書くのって難しい・・・
[返信 3] Re : 【実行時エラー13 型が一致しません】の解決方法を教えてください。
投稿者 : maruko 投稿日時 : 2022/10/07(Fri) 20:46:56
■[返信 1] ngkさん(2022-10-07 16:12:31)の記事
> なんかよくわかんないけど・・・
>
> 仮に
> | A | B | C | D | E
> 1 |ナンバ |支部 |店名 |町名 |支払方法
> 2 | 1 |XXX |YYY |zzz |方法1
> 3 |///////|///////|///////|///////|方法2
> 4 |///////|///////|///////|///////|方法3
> 5 |///////|///////|///////|///////|方法4
> 6 |///////|///////|///////|///////|方法5
> 7 |///////|///////|///////|///////|方法6
> 8 |///////|///////|///////|///////|方法7
> 9 |///////|///////|///////|///////|方法8
> 10 | 2 |XXX |YYY |zzz |方法1
>
> みたいな感じで車線部分を詰めたい、ってことでいいんですか?
ngk様
ご返信ありがとうございます。はい、こちらおおむねその通りです。
詳しく申しあげますと、こちら元はA2~A9、B2~B9、C2~C9,D2~D9までが
それぞれセル結合されていたエクセルデータです。
並び替えなどの処理をするために、結合を解いてしまうと、2行目だけに
データ残り、3~9行目に空白が出来てしまいます。
この生まれてしまった空白欄に2行目のデータ(もともと入っていたもの)をすべて同じくするイメージです。
この状態がNO1の店以下、NO2の店、NO3の店……でも同じことがえんえんと
2万行くらいつづくため、人力でコピペを繰り返すわけにもいかず……。
3行目を起点に、A~D列が空白だったら、前のセルの同範囲をコピーして次の行で同じ処理をする……
というマクロを書きたかったのですが、そもそも基本的なところでつまづいている状態です。
■[返信 1] ngkさん(2022-10-07 16:12:31)の記事
> なんかよくわかんないけど・・・
>
> 仮に
> | A | B | C | D | E
> 1 |ナンバ |支部 |店名 |町名 |支払方法
> 2 | 1 |XXX |YYY |zzz |方法1
> 3 |///////|///////|///////|///////|方法2
> 4 |///////|///////|///////|///////|方法3
> 5 |///////|///////|///////|///////|方法4
> 6 |///////|///////|///////|///////|方法5
> 7 |///////|///////|///////|///////|方法6
> 8 |///////|///////|///////|///////|方法7
> 9 |///////|///////|///////|///////|方法8
> 10 | 2 |XXX |YYY |zzz |方法1
>
> みたいな感じで車線部分を詰めたい、ってことでいいんですか?
ngk様
ご返信ありがとうございます。はい、こちらおおむねその通りです。
詳しく申しあげますと、こちら元はA2~A9、B2~B9、C2~C9,D2~D9までが
それぞれセル結合されていたエクセルデータです。
並び替えなどの処理をするために、結合を解いてしまうと、2行目だけに
データ残り、3~9行目に空白が出来てしまいます。
この生まれてしまった空白欄に2行目のデータ(もともと入っていたもの)をすべて同じくするイメージです。
この状態がNO1の店以下、NO2の店、NO3の店……でも同じことがえんえんと
2万行くらいつづくため、人力でコピペを繰り返すわけにもいかず……。
3行目を起点に、A~D列が空白だったら、前のセルの同範囲をコピーして次の行で同じ処理をする……
というマクロを書きたかったのですが、そもそも基本的なところでつまづいている状態です。
[返信 4] Re : 【実行時エラー13 型が一致しません】の解決方法を教えてください。
投稿者 : ピロリ 投稿日時 : 2022/10/08(Sat) 17:18:08
下の2行のコードは、残念ながら意図した動きにはならないはずです。
> If Range(Cells(行番号, 1), Cells(行番号, 4)).Value = "" Then
> Range(Cells(行番号, 1), Cells(行番号, 4)).Value = Range(Cells(行番号 - 1, 1), Cells(行番号 - 1, 4))
実現したいのは、下記のような感じでしょうか。
下の2行のコードは、残念ながら意図した動きにはならないはずです。
> If Range(Cells(行番号, 1), Cells(行番号, 4)).Value = "" Then
> Range(Cells(行番号, 1), Cells(行番号, 4)).Value = Range(Cells(行番号 - 1, 1), Cells(行番号 - 1, 4))
実現したいのは、下記のような感じでしょうか。
Sub 練習改2()
Dim 支払最終行 As Long
Dim 行番号 As Long
行番号 = 2 'データ行は2行目~かな?
支払最終行 = Cells(Rows.Count, "E").End(xlUp).Row '支払方法の最終行を取得し、
Range(Cells(行番号, "A"), Cells(支払最終行, "D")).MergeCells = False
'まずは、セルの結合を解除する
For 行番号 = 行番号 + 1 To 支払最終行 '次の行から最終行までループ
If Cells(行番号, "A") = "" Then 'ナンバが無くなってしまった行は、
Range(Cells(行番号 - 1, "A"), Cells(行番号 - 1, "D")).Copy Cells(行番号, "A")
'上の行の4データをコピーする
End If
Next 行番号
End Sub
[返信 5] Re : 【実行時エラー13 型が一致しません】の解決方法を教えてください。
投稿者 : w3 投稿日時 : 2022/10/09(Sun) 01:23:11
>詳しく申しあげますと、こちら元はA2~A9、B2~B9、C2~C9,D2~D9までが
>それぞれセル結合されていたエクセルデータです。
>Range(Cells(行番号, 1), Cells(行番号, 4)).Value
>Range(Cells(行番号 - 1, 1), Cells(行番号 - 1, 4))
書いてある通りになってません。
何がどうなっているのか不明。
~と言う字をチルダにしている点で答える気にならんけど。
>詳しく申しあげますと、こちら元はA2~A9、B2~B9、C2~C9,D2~D9までが
>それぞれセル結合されていたエクセルデータです。
>Range(Cells(行番号, 1), Cells(行番号, 4)).Value
>Range(Cells(行番号 - 1, 1), Cells(行番号 - 1, 4))
書いてある通りになってません。
何がどうなっているのか不明。
~と言う字をチルダにしている点で答える気にならんけど。
[返信 6] Re : 【実行時エラー13 型が一致しません】の解決方法を教えてください。
投稿者 : w3 投稿日時 : 2022/10/09(Sun) 08:06:59
既存済みでした。
既存済みでした。
[返信 7] Re : 【実行時エラー13 型が一致しません】の解決方法を教えてください。
投稿者 : w3 投稿日時 : 2022/10/09(Sun) 08:09:39
>既存済みでした。
書き込む場所間違えました。
>既存済みでした。
書き込む場所間違えました。
[返信 8] Re : 【実行時エラー13 型が一致しません】の解決方法を教えてください。
投稿者 : maruko 投稿日時 : 2022/10/14(Fri) 10:18:16
ピロリさん
返信遅れてしまってすみません。こちらご回答ありがとうございます。
最終行の取得、結合の解除まで組み込んでいただき、うれしく思います。
(このあたりは手動でやっていました)
そもそも全然だめだったんですね。独学で勉強しているのですが、
なかなかうまくいかず……。
このたびは本当にありがとうございました!
ピロリさん
返信遅れてしまってすみません。こちらご回答ありがとうございます。
最終行の取得、結合の解除まで組み込んでいただき、うれしく思います。
(このあたりは手動でやっていました)
そもそも全然だめだったんですね。独学で勉強しているのですが、
なかなかうまくいかず……。
このたびは本当にありがとうございました!
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2026-04-03 07:58:07 )