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

※※※※※※※※※※※※※※※※※※※※

この空白行を埋めるコードを書いてみたのですが、実行時エラーが出ました。

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

みたいな感じで車線部分を詰めたい、ってことでいいんですか?

[返信 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列が空白だったら、前のセルの同範囲をコピーして次の行で同じ処理をする……
というマクロを書きたかったのですが、そもそも基本的なところでつまづいている状態です。

[返信 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))

実現したいのは、下記のような感じでしょうか。

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))

書いてある通りになってません。
何がどうなっているのか不明。

~と言う字をチルダにしている点で答える気にならんけど。

[返信 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 )
タイトルとURLをコピーしました