コンパイルエラーで進みません


104  2013-11-15 02:25:58  No: 143480

下記VBAでコンパイルエラーを起こして進みません
解消法をご教授いただけると幸いです

やりたいこととしては
ボタンで任意のタブ区切りのテキストを指定し
シートに値をコピーすることです

----
Private Sub CommandButton1_Click()
Dim Sh As Worksheet
Dim FileN As String
Set Sh = ThisWorkbook.Sheets("import") '          <-- 読込みシート指定(※)
FileN = Application.GetOpenFilename("テキストファイル,*.txt")
If FileN <> "False" Then
    With Workbooks.OpenText(FileN, DataType:=xlDelimited, Tab:=True)
        .Sheets(1).UsedRange.Copy Sh.Rane("A1") '         <-- セル指定
        .Close
    End With
End If
Set Sh = Nothing
End Sub
----


魔界の仮面弁士  2013-11-19 11:57:18  No: 143481

> Dim FileN As String
> FileN = Application.GetOpenFilename("テキストファイル,*.txt")
> If FileN <> "False" Then

GetOpenFilename の戻り値は String 型ではありません。
戻り値は Variant 型の変数で受け取る必要があります。

ダイアログがキャンセルされると、戻り値は「False」になります(「"False"」ではない)。
ファイルが選択された場合は、戻り値はそのファイル名へのフルパスになります。(内部処理形式 String な Variant 型)

蛇足ですが、GetOpenFilename に MultiSelect:=True が指定されてた場合には、
  キャンセル時  →  False (内部処理形式 Boolean な Variant型)
  ファイル指定時  →  ファイルフルパスを示す1次元配列False (Variant型の一次元配列を格納した Variant)
となります。

> With Workbooks.OpenText(FileN, DataType:=xlDelimited, Tab:=True)
OpenText メソッドは戻り値を返しません。(Function ではなく Sub です)
そのため、コンパイルエラーになっているのでしょう。この場合は
  Call Workbooks.OpenText(FileN, DataType:=xlDelimited, Tab:=True)
などとしてみてください。

> .Sheets(1).UsedRange.Copy Sh.Rane("A1") '         <-- セル指定
Range プロパティですよね。スペルミスでしょうか。
Rane というメンバーは、Worksheet オブジェクトにはありません。


魔界の仮面弁士  2013-11-19 11:58:39  No: 143482

> ファイル指定時  →  ファイルフルパスを示す1次元配列False (Variant型の一次元配列を格納した Variant)

ファイル指定時  →  ファイルフルパスを示す1次元配列 (Variant型の一次元配列を格納した Variant)


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加