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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) 形式を選択して貼り付け 以下のコードで「元」シートと「先」シートのA列に同じ値があったら指定範囲をコ 5 2022/11/11 07:30
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- Visual Basic(VBA) 左から空白文字を探して左側を比較する 4 2022/02/02 22:48
- Excel(エクセル) エクセルの印刷マクロについて質問があります。 現在、下記のマクロで印刷しています。Sheet1のD6 5 2023/06/12 10:59
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
コードを直していただきたいです。 以下のコードはネットで拾ったものをほんの少しいじった物なのですが、
Visual Basic(VBA)
-
Cellsのコードが打てません
Visual Basic(VBA)
-
VBA UserFormからの転記で
Visual Basic(VBA)
-
-
4
VBEを開くのにコマンド名が「Visual Basic」な理由はなぜ?
Visual Basic(VBA)
-
5
excelのVBAについて、以下のコードに追加をお願いいたします。
Visual Basic(VBA)
-
6
ExcelVBAのFindFirstエラーについて
Visual Basic(VBA)
-
7
VBAの質問です、複数のテキストボックスに同じコメントを
Visual Basic(VBA)
-
8
VBAに関して
Visual Basic(VBA)
-
9
VBA 二つのブックをうまく扱えないでいます
Visual Basic(VBA)
-
10
VBAのことで質問です
Visual Basic(VBA)
-
11
ExcelのVBAのことで質問です。 以下のコードを入れ、ボタンを押せば作動させると写真のように画面
Visual Basic(VBA)
-
12
VBAコードが作動しません。修正したいのですが何処に原因かあるか教えて下さい。
Visual Basic(VBA)
-
13
VBA
Visual Basic(VBA)
-
14
VBA実行後に元のセルに戻りたい
Visual Basic(VBA)
-
15
近似した文字列を置換するエクセル関数またはVBAについて
Visual Basic(VBA)
-
16
Excel VBA マクロ シート名を変えずにA列にあるセル名の名前でファイルの分割をしたいです
Visual Basic(VBA)
-
17
エクセルVBAでデータ転記
Visual Basic(VBA)
-
18
VBA ファイル名取得
Visual Basic(VBA)
-
19
エクセルファイルのデータ転記について
Visual Basic(VBA)
-
20
for 文の 繰り返し処理に使えるのかどうかについて
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Java、配列の問題を教えて欲し...
-
上書き保存されない
-
Caps Lockキーの解除
-
Excelでカーソルが逆に動く
-
Excel2010の並べ替えで行の高さ...
-
リース初心者です 利子率の計...
-
プルダウンで選択すると隣のセ...
-
shiftキーのロック解除をしたい...
-
エクセルで作った書類に、パン...
-
60進法で複数セルの足し算、引...
-
オーバレイ機能を解除する方法は?
-
VBA 条件が一致した場合の...
-
エクセル関数で {=TABLE(,セル...
-
エクセルシートを重ねることは...
-
WORDで先頭ページを追加するには?
-
エクセルで複雑な表の作り方
-
基本的なエクセル操作とは?
-
Excelのオートカルクの結果をコ...
-
ゾーン10進数とパック10進数は...
-
エクセルデータから必要な情報...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAについて質問。別シートに転...
-
マクロのエラー
-
Java、配列の問題を教えて欲し...
-
上書き保存されない
-
VBA SubTotalで集計を出そうと...
-
業務が劇的に便利になったツー...
-
VBAで試験結果の集計ツールを作...
-
Mathematicaで関数の最大値を求...
-
VBAで連番に色を付けたい
-
splitを使ってスペース位置で文...
-
郵便番号から都道府県・郡・市...
-
Excel2010の並べ替えで行の高さ...
-
リース初心者です 利子率の計...
-
Excelでカーソルが逆に動く
-
エクセルで離れたセルを離れた...
-
Caps Lockキーの解除
-
エクセルで複数の勤務時間ごと...
-
エクセル関数で {=TABLE(,セル...
-
プルダウンで選択すると隣のセ...
-
VBA 条件が一致した場合の...
おすすめ情報
ありがとうございます。
申し訳ございません初心者で
Val関数のパラメータは標準的には文字列なので
Dimで宣言するところを文字型つまり
As Stringにして治らないですか?
ですがVBAをのせていただけないでしょうか
申し訳ございません。