私の関数の1つにブール値の問題があります。それは、このVBA:Booleanが正常に機能していません
TxtFile True, FileDir, 1, "Hello"
のように呼び出すと、関数が
TxtFile(WritetoFile As Boolean, FileDir As String, line As Variant, What As String)
です。
機能が最初に行うことは、単純なIf
とelseif
というステートメントでtrueまたはfalseをテストすることです。私の機能を実行すると、WritetoFile As Boolean
はfalse
です。しかし、私が同じ関数を呼び出すと、DeBugを使ってそのステップを進めていくと、watchはそれがTrue
だと言います。私は関数を別の形式で8つの異なる方法で問題なく呼び出します。
編集:関数全体
Option Compare Database
Public ReadOptionsOutput As String
Public FSO As New FileSystemObject
Public TxtFileOutPut As String
Public Function TxtFile(WritetoFile As Boolean, FileDir As String, line As Variant, What As String)
Dim FileContent() As Variant
Dim Idx As Integer
Dim Txtstream As Object
If WritetoFile = True Then
Set Txtstream = FSO.OpenTextFile(FileDir, ForReading, False)
Idx = 0
On Error GoTo Err1 'To catch the last blank line. Dont see another way to see if .ReadLine is blank
Do 'Build an array to edit lines in Text file
Idx = Idx + 1
ReDim Preserve FileContent(1 To Idx)
FileContent(Idx) = Txtstream.ReadLine
Loop
Err1:
Open FileDir For Output As #1: Close #1 'Delet all text inside of File
Set Txtstream = Nothing
Set Txtstream = FSO.OpenTextFile(FileDir, ForAppending, False)
FileContent(line) = What 'Edit line in the array
For Idx = 1 To Idx - 1
Txtstream.WriteLine (FileContent(Idx)) 'Write everything back to textfile
Next
ElseIf WritetoFile = False Then 'Reads Line in file only
Set Txtstream = FSO.OpenTextFile(FileDir, ForReading, False)
NextLine = 1
Do 'Loop thru to selected line and read it
TxtLine = Txtstream.ReadLine
If NextLine = line Then
TxtFileOutPut = TxtLine
End If
NextLine = NextLine + 1
Loop Until NextLine > line
End If
Txtstream.Close
End Function
コード全体を提供できますか?どのアプリケーション(Excel、Access)ですか? – Wernerson
@Wernerson全体機能とVBAアクセスタグを含む投稿を編集します。あなたが他人を見たいと思ったら教えてください。 – Quint
「私が私の機能を実行すると、WatchはWritetoFile As Booleanがfalseであることを私に伝えています。時計(View - > Watch)を見ると、WritetoFile is Trueと書かれています... – Wernerson