掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Excelで1つの列を範囲指定するには? (ID:125105)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Excel操作について質問です。 1つ目のExcelファイルで検索文字列の存在する列と同じ列を指定して、 2つ目のExcelファイルから値を取得して処理をしたいのですが、 列の指定の部分で壁に当たってしまいました。 下記ソースのFor Eachの部分で For Each xlsRange In wkbObj.Worksheets(1).Columns(keyColumn) とすれば範囲指定は出来るのですが、 getStr = xlsRange.Value で「型が一致しません。」のエラーが発生してしまいます。 For Each xlsRange In wkbObj.Worksheets(1).Range("A:A") 等と指定すればうまくいくのですが、これだと"A:A"という指定 自体の取得方法がわかりません。 列番号からRangeを指定する方法、もしくは、 "A:A" or "A"等の列名(?)の取得方法が分かる方がいましたら、 ご助言をお願い致します。 Dim wkbObj As Workbook ' Excel Workbook Dim wkbObjKey As Workbook ' Excel Workbook Dim wkSheetKey As Worksheet ' Excel WorkSheet Dim xlsRange As Range ' Excelの指定範囲 Dim keyColumn As Long ' 列番号 Dim getStr As String ' ExcelのCellから取得した文字列 Set wkbObjKey = GetObject("ファイル1") Set wkSheetKey = wkbObjKey.Worksheets(1) ' 2行目までをタイトルとみなしてその中にある ' 対象文字列の列番号を取得する keyColumn = wkSheetKey.Range("1:2").Find("検索文字列").Column Set wkbObj = GetObject("ファイル2") ' ↓ここで任意の1列を範囲指定してループしたい For Each xlsRange In wkbObj.Worksheets(1).Range("ここでkeyColumnの列を指定したい") getStr = xlsRange.Value ・ ・ ・
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.