- ベストアンサー
文字列をINTEGER型に変換
基礎の質問ですいません。 Dim moji as String moji = "123" とあった場合moji変数をInteger型に変えるには CINT(moji)で合っているのでしょうか? Cells(CINT(moji))としたらデータ型があっていないと いうエラーがでました よろしくお願いいたします
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
補足を書きかえるなら、 rows = FR.rows '検索した名前の行番号取得 int_rows = CInt(rows) ↓ Dim fndRow AS Integer fndRow= FR.Row '検索した名前の行番号取得 int_rows = CInt(fndRow) 'ほとんど意味がない? ※.Rows→.Row ※rows を別の変数にしました。 でしょうか。 どうも回りくどいようです。 私なら、次のように書きますが・・・ If Not FR Is Nothing Then Sheets(1).Cells(1, 1) = FR.Offset(0, -1) '検索した名前の左 End If
その他の回答 (5)
- taisuke555
- ベストアンサー率55% (132/236)
FR.Rows ではなく FR.Row でできませんか?
- taisuke555
- ベストアンサー率55% (132/236)
#2の補足に対する回答です。 sub test() Dim searchWord As String searchWord = TextBox1.Text With Worksheets("Sheet2").Range("B1:B1000") Set FR = .Find(What:=searchWord, LookIn:=xlValues, LookAt:=xlWhole) If Not FR Is Nothing Then aRows = FR.Row '検索した名前の行番号取得 Sheets(1).Cells(1, 1).Value = Sheets("Sheet2").Cells(aRows, 1) End If End With end sub でどうでしょうか?間違っていたらすみません。
- imogasi
- ベストアンサー率27% (4737/17069)
●下記でいずれも動きますよ。テスト済み。 cells(n)はA1より横に数えて、n番目のセルを指す。 256を越えると257はB1になります。 普通この使い方はしませんが。worksheets,workbooksでは 良く使います。 Sub test01() Dim a As Integer a = 5 Cells(1) = "aaa" Cells(3) = 123 Cells(123) = 1234 'DS1 Cells(a) = 111 Cells(257) = "aa" End Sub ●下記はエラーが出ず動きましたよ。 Sub test02() Dim moji As String moji = "3" a = CInt(moji) Cells(a) = "ccc" End Sub 「123」にすると確かめ難いので、「3」にしました。 Dim a As Integerをいれても動きました。
- uratan
- ベストアンサー率30% (38/124)
Cellsには範囲をしていしなければいけません。 例えば、Cells(1, 1)のようにです。 質問者さんの形だと、Cells(123)になっていますね。 だからではないでしょうか? 具体的にどのようなことがしたいか教えていただければ、もう少し詳しい回答ができるかもしれません。
補足
説明不足で失礼致しました。実は今、 textboxで入力した名前を SHEET2で定義されているデータ一覧から名前を検索しコード値を取得してきてSHEET1のセル(1,1)に表示させるプログラムを作成しています。 sheet2にはコードと名前の列があります。 A B コード 名前 1 小池 2 田中 3 峰 といった感じで1000件あります。 (例)小池とテキストボックスにうつとセル(1,1)に1と表示させる そこで Dim searchWord as String searchWord = TextBox1.text With Worksheets("Sheet2").Range("B1:B1000") Set FR = .Find(What:=searchWord, LookIn:=xlValues, LookAt:=xlWhole) If Not FR Is Nothing Then rows = FR.rows '検索した名前の行番号取得 int_rows = CInt(rows) Sheets(1).Cells(1,1).Value = Sheets("Sheet2").Cells(int_rows, 1) 'ここでエラーが発生(”データ型が一致していません”) End If End With 以上よろしくお願いいたします
- taknt
- ベストアンサー率19% (1556/7783)
Dim moji As String Dim a As Integer moji = "123" a = moji これだけでいいです。
補足
ありがとうございます。上記の方法でやってみたのですが データ型が一致しませんというエラーが発生いたしました
補足
CELLSの引数は整数型なのでFR.ROWSの戻り値はSTRING型なので型が一致していませんというエラーが発生してしまいます。 このaRowsを何とかInteger型に変換したいのですが。。。