VBAについて質問です。初心者です。
CSVからデータを読み込み、split関数を使い、配列変数SpritStringに入れました。。
シートにある範囲から配列変数にある文字列を検索したく配列変数split(0)="002"が入っていル状態で、これをmatch関数の因数に使いたいのですが、、
うまくいきません。
配列変数を引数にしても、コンパイルエラーsubまたはFunctionが定義されていません。になるか、WorkSheetFunctionクラスのMatchを取得できませんでしたとなり、対応できてないようです。
まず配列変数から値を取得してどうにかしてMatch関数の引数にいれることはできませんでしょうか。
ご対応お願いします。
ソースコードは編集中に付き、乱文で失礼いたします。
宜しくお願い致します。
vba
1Sub ボタン1_Click() 2 3'タブ区切りファイルを全て文字列として読み込む 4 5 Dim FileName As String 6 Dim i As Long 7 Dim Cnt As Long 8 Dim Buf As Variant 9 Dim FileNo As Integer 10 Dim SplitString As Variant 11 Dim ArrayData As String 12 Dim MaxRow As Variant 13 Dim selectdata As Variant 14 Dim selsheet As Variant 15 16 'ファイルダイアログを表示 17 FileName = Application.GetOpenFilename("CSVファイル,*.csv") 18 19 20 '空いているファイル番号を取得 21 FileNo = FreeFile() 22 Buf = Space(FileLen(FileName)) 23 24 'ファイルを開いてbufに1行読み込み 25 ' → タブで配列に分割 26 ' → セルに書き出し 27 Open FileName For Input As #FileNo 28 Do Until EOF(FileNo) 29 Line Input #FileNo, Buf 30 Cnt = Cnt + 1 31 SplitString = Split(Buf, ",") 32 ArrayData = SpritString(3) 33 'ここで配列化したCSVの一行をシート側のid同士が一致するとき、7割のデータを選別して入力 34 MaxRow = Range("A9").End(xlDown).Row - 1 35 selsheet = Worksheets(Sheets.Count).Activate 36 On Error Resume Next 37 selectdata = Application.WorksheetFunction.Match(ArrayData, Range("A9:A" & MaxRow), 0) 38 On Error 39 If Not (selectdata Is Nothing) Then 40 For i = 5 To UBound(SplitString) 41 Cells(selectdata.Row, (i + 1)) = SplitString(i) 'selectDataの行をとりたい 42 Next i 43 End If 44 45 Loop 46 47 Close #FileNo
前提・実現したいこと
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
ソースコード
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。