特定の条件(具体的には名前に「TUBA」を含める)ですべてのシート名をチェックするマクロを作成しようとしています。それらのシート上の範囲をファイル名としてシート名のテキストファイルにエクスポートします。エラー91が発生しています:オブジェクト変数またはブロック変数が設定されていません。デバッグ時にIf WS.name Like "TUBA*" Then
行が強調表示されています。これをどうすれば解決できますか?問題のあるコードは以下のとおりです。私は以前、ほぼ同じコードで成功しましたが、If
ステートメント(下の2番目のブロックに示されています)がないので、私はこれを追加しています。変数を設定する必要がある場合は、Excel VBAエラー91、特定のシートのデータをテキストファイルにエクスポートしよう
Sub ExportTubatoText()
Dim c As Range, r As Range
Dim output As String
Dim lngcount As Long
Dim WS As Worksheet
Dim Name As String
Dim strFolder As String
strFolder = GetFolder("L:TUBA\")
'\ dialog box opens in that folder as default
'strFolder = GetFolder("L:TUBA\")
If strFolder <> "" Then
MsgBox strFolder
End If
For Each sh In ThisWorkbook.Worksheets
'if worksheet has 'TUBA' in the title, then it is exported to text
If WS.Name Like "TUBA*" Then
output = ""
For Each r In sh.Range("F3:F200").Rows
For Each c In r.Cells
output = output & c.Value
Next c
output = output & vbNewLine
Next r
Name = sh.Name
Open strFolder & "\" & Name & ".txt" For Output As #1
Print #1, output
Close
End If
Next
End Sub
成功コード:
For Each sh In ThisWorkbook.Worksheets
output = ""
For Each r In sh.Range("O2:O500").Rows
For Each c In r.Cells
output = output & c.Value
Next c
output = output & vbNewLine
Next r
Name = sh.Name
Open strFolder & "\" & Name & ".txt" For Output As #1
Print #1, output
Close
Next
:この行で
これに - Option Explicitはすぐにこのエラーを警告していたでしょう... – bobajob
リッチ、これがあなたの問題を解決したら、それを答えにしてください。そうでない場合は、誰かが助けてくれるように応答してください。 – Rdster
'output = output&c.Value'という行とタイプの不一致エラーが発生しました。私は文字列として 'output'変数を指定しましたが、これはセルに含まれている小数点で動作しますか? Rdster、ご迷惑をおかけしておりました –