d(i, 2) = Sheets(1).Range("J58")
上記を以下のAX12に変更
d(i, 2) = Sheets(1).Range("AX12")
d(i, 2) = Sheets(2).Range("J58")
上記を上記を以下のAX12に変更
d(i, 2) = Sheets(2).Range("AX12")
を変更したところ型が一致しませんと出て
If Val(d(i, 2)) = 0 Then
の部分が黄色くなってしまいます
どこを直せばいいのでしょうか
For i = 1 To cnt
If Left(d(i, 1), 1) = "G" Then
Sheets(1).Range("J5") = d(i, 1)
d(i, 2) = Sheets(1).Range("AX12")
Sheets(1).Range("J5") = ""
End If
Next
For i = 1 To cnt
If Left(d(i, 1), 1) = "T" Then
Sheets(2).Range("J5") = d(i, 1)
d(i, 2) = Sheets(2).Range("AX12")
Sheets(2).Range("J5") = ""
End If
Next
For i = 1 To cnt
For j = 4 To 48
If Sheets("集計").Cells(j, 1) = d(i, 1) Then
If Val(d(i, 2)) = 0 Then d(i, 2) = 0
Sheets("集計").Cells(j, ComboBox1 + 2) = d(i, 2)
End If
Next
Next
End Sub
No.5ベストアンサー
- 回答日時:
詳細が分からないので違うかも知れません
また、#4様の回答に重複しますが
>d(i, 2) = Sheets(2).Range("J58")
上記を上記を以下のAX12に変更
d(i, 2) = Sheets(2).Range("AX12")
を変更したところ型が一致しませんと出て
If Val(d(i, 2)) = 0 Then
の部分が黄色くなってしまいます
どこを直せばいいのでしょうか
d(i, 2) = Sheets(2).Range("J58") でエラーが出ず
同じ変数(今回配列)に違うセル値を参照または代入し13エラーが出る場合
原因として考えられる第一候補は 参照セルの値にあります
セルの値は変数型宣言をしていない場合のVariant型や
宣言をしてのVariant型、文字列型、数値型などで受ける事が出来ますが
セルに数式などがありセル値にエラーが返っている場合
*セル値のエラーではない場合、Val 関数まで読み飛ばしてください
d(i, 2) = Sheets(1).Range("AX12") でエラーが発生しないので配列変数はVariant型だと思います
>どこを直せばいいのでしょうか
参照先セルに数式などがありシート内容を変更できる場合(理想はこちら)
関数式を見直し エラー処理関数またはエラーの原因を特定して数式を再設定するのが良いと思います
シート内容を変更できない場合は
IsError関数で分岐するとかTypeName関数で参照値などを調べ分
要件に合わせて型変換を行うとか分岐処理処理などでエラー回避処理を行う方法になると思います
Variant配列dへ代入時
If Not IsError(Sheets(2).Range("AX12").Value) Then d(i, 2) = Sheets(2).Range("AX12")
補足:上記例の(Variant)場合
代入しない場合d(i, 2)はEmptyです
Else で "" 長さ0の文字を代入すれば文字列です
Variant配列で受けて使用時に対応する場合
(コピペで作成)
For j = 4 To 48
If Sheets("集計").Cells(j, 1) = d(i, 1) Then
If Not IsError(d(i, 2)) Then
If Val(d(i, 2)) = 0 Then d(i, 2) = 0
Sheets("集計").Cells(j, ComboBox1 + 2) = d(i, 2)
End If
End If
Next
Val 関数
https://learn.microsoft.com/ja-jp/office/vba/lan …
抜粋
Val 関数は、変換前に非推奨のデータ型サフィックスを認識し、型の不一致エラーが発生する可能性があります。 たとえば、文字列 "50%" として表される 50% は予想どおりに 50 に変換されますが、割合記号は整数として宣言するサフィックスと見なされるため、Val("50.5%") はエラーを発生させます。この場合は発生しません。 データ型サフィックスの完全な一覧は、64 ビット ホストの Single ( ! ) 、Currency ( @ )、Double ( # )、String ( $ )、Integer ( % )、Long ( & )、LongLong ( ^ ) で構成されます。
No.4
- 回答日時:
>d(i, 2) = Sheets(2).Range("J58")
>上記を上記を以下のAX12に変更
>d(i, 2) = Sheets(2).Range("AX12")
セルJ58とAX12に違いがありますか?
元に戻せば正常に動くならセルの値に問題があるのかも?
No.3
- 回答日時:
ただちょっと違うかもしれません。
Val関数は型が一致しないエラーを起こすケースが無いみたいです。
だから思ってたのとは違うかもですけど、どっちにしろ
動作確認には先頭から全体がないと動作確認できないんです。
Subの途中からじゃ解らないです。
No.2
- 回答日時:
逆ですよ。
貴方がコードの先頭を載せてないから
私が答えられないんです。
最後にEnd Subってあるでしょう?
最初を貴方端折ってますよね?
そこにDimで多分配列の宣言があるはずと思ってます。
そこになんて書いてるかがわからないのでコードで
答えられないんです。
No.1
- 回答日時:
型が一致しないのですから変数の型の問題です。
ここでいうとd(i,1)っていう配列ですよね?
それを最初にdimで宣言するときに型を
多分指定してないんじゃないかな?
エラーが出ない可能性もあるなら。
Val関数のパラメータは標準的には文字列なので
Dimで宣言するところを文字型つまり
As Stringにして治らないですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 2次元配列の出力
-
エクセルのVBAコードについて教...
-
エクセルvbaの対象セルに色をつ...
-
Excelのマクロについて教えてく...
-
ExcelのVBAコードについて教え...
-
Excelのマクロについて教えてく...
-
エクセルVBAのブックを開く方法...
-
エクセルVBAで特定のセルの値を...
-
エクセルでCDOを使ったメール送...
-
VBAでセルの書式を変えずに文字...
-
【VBA】 結合セルに複数画像と...
-
[Excel VBA]特定の条件で文字を...
-
【VBA】スペースが入っていない...
-
【VBA】値を変更しながら連続で...
-
エクセル タブの下のメニューを...
-
Vba SelStart、SelLen教えてく...
-
VBA 別ブックからコピペしたい...
-
【ExcelVBA】dictionaryの重複...
-
【ExcelVBA】5万行以上のデー...
-
vba 別ブックに転記
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
splitを使ってスペース位置で文...
-
VBAについて質問。別シートに転...
-
JavaScriptでキャッシュクリア...
-
上書き保存されない
-
Java、配列の問題を教えて欲し...
-
エクセルでマクロを続けて実行...
-
VBや、Excelでこんなことできま...
-
VBAで試験結果の集計ツールを作...
-
ファイル出力のテストについて
-
VBAで連番に色を付けたい
-
アクセス解析で自社HPの過去か...
-
エクセル セルのデータ量を自動...
-
Caps Lockキーの解除
-
Excel2010の並べ替えで行の高さ...
-
リース初心者です 利子率の計...
-
エクセルで複数の勤務時間ごと...
-
Excelでカーソルが逆に動く
-
エクセル関数で {=TABLE(,セル...
-
エクセルで離れたセルを離れた...
-
プルダウンで選択すると隣のセ...
おすすめ情報
ありがとうございます。
申し訳ございません初心者で
Val関数のパラメータは標準的には文字列なので
Dimで宣言するところを文字型つまり
As Stringにして治らないですか?
ですがVBAをのせていただけないでしょうか
申し訳ございません。