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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
コードを直していただきたいです。 以下のコードはネットで拾ったものをほんの少しいじった物なのですが、
Visual Basic(VBA)
-
VBAコードが作動しません。修正したいのですが何処に原因かあるか教えて下さい。
Visual Basic(VBA)
-
Cellsのコードが打てません
Visual Basic(VBA)
-
-
4
VBAの質問です、複数のテキストボックスに同じコメントを
Visual Basic(VBA)
-
5
ExcelVBAのFindFirstエラーについて
Visual Basic(VBA)
-
6
VBA UserFormからの転記で
Visual Basic(VBA)
-
7
VBEを開くのにコマンド名が「Visual Basic」な理由はなぜ?
Visual Basic(VBA)
-
8
VBA コード
Visual Basic(VBA)
-
9
VBAのことで質問です
Visual Basic(VBA)
-
10
excelのVBAについて、以下のコードに追加をお願いいたします。
Visual Basic(VBA)
-
11
ファイル名の日付について教えて頂けますかExcel
Visual Basic(VBA)
-
12
VBA
Visual Basic(VBA)
-
13
【VBA】カーソルのある行の1行目のセルをコピペし,最後にそのセルに戻る方法
Visual Basic(VBA)
-
14
VBA ファイル名取得
Visual Basic(VBA)
-
15
for 文の 繰り返し処理に使えるのかどうかについて
Visual Basic(VBA)
-
16
エクセルファイルのデータ転記について
Visual Basic(VBA)
-
17
エクセルVBAの配列について
Visual Basic(VBA)
-
18
以下のコードを実行しても、オブジェクト変数または、withブロック変数が設定されていませんとエラーが
Visual Basic(VBA)
-
19
VBA一覧取得 再投稿
Visual Basic(VBA)
-
20
VBAに関して
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAについて質問。別シートに転...
-
郵便番号から都道府県・郡・市...
-
アクセス解析で自社HPの過去か...
-
上書き保存されない
-
Excel2010の並べ替えで行の高さ...
-
Caps Lockキーの解除
-
エクセルで離れたセルを離れた...
-
エクセル関数で {=TABLE(,セル...
-
オーバレイ機能を解除する方法は?
-
Excelでカーソルが逆に動く
-
エクセルで複数の勤務時間ごと...
-
プルダウンで選択すると隣のセ...
-
エクセルで作った書類に、パン...
-
リース初心者です 利子率の計...
-
VBA 条件が一致した場合の...
-
エクセルデータをワードへ反映...
-
エクセル2007 の右クリックメ...
-
EXCEL関数 上四桁目を3捨4入
-
Excelの空白行を上に詰めるVBA...
-
エクセルの計算式ですが・・・
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Java、配列の問題を教えて欲し...
-
VBAについて質問。別シートに転...
-
上書き保存されない
-
splitを使ってスペース位置で文...
-
マクロのエラー
-
VBA SubTotalで集計を出そうと...
-
VBAで連番に色を付けたい
-
郵便番号から都道府県・郡・市...
-
VBAを教えていただきたいです。...
-
VBAで試験結果の集計ツールを作...
-
入出力について
-
VBAでIEを最小化したい
-
業務が劇的に便利になったツー...
-
Mathematicaで関数の最大値を求...
-
Caps Lockキーの解除
-
Excel2010の並べ替えで行の高さ...
-
エクセル関数で {=TABLE(,セル...
-
リース初心者です 利子率の計...
-
Excelでカーソルが逆に動く
-
エクセルで離れたセルを離れた...
おすすめ情報
ありがとうございます。
申し訳ございません初心者で
Val関数のパラメータは標準的には文字列なので
Dimで宣言するところを文字型つまり
As Stringにして治らないですか?
ですがVBAをのせていただけないでしょうか
申し訳ございません。