Pregunta ¿Abrir el archivo de texto y anexar texto nuevo?


Tengo un texto que creo y luego quiero agregarle texto. Pero me aparece un error: Llamada o argumento de procedimiento no válido.

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim Fileout As Object
Dim filePath As String
filePath = "C:\myFile.txt"


If FileExists(filePath) = False Then
Set Fileout = fso.CreateTextFile(filePath, True, True)
Fileout.Write Msg
Fileout.Close
Else
Set Fileout = fso.OpenTextFile(filePath, ForAppending, TristateFalse) <<<<<== ERROR HERE
Fileout.Write Msg
Fileout.Close
End If

Function FileExists(strFullPath As String) As Boolean
'Check if a file or folder exists
If Not Dir(strFullPath, vbDirectory) = vbNullString Then FileExists = True
End Function

1


origen


¿En qué punto se produce el error? ¿Qué has intentado ya para rectificar el problema? - Ƭᴇcʜιᴇ007
Has modificado tu pregunta a otra completamente diferente. - Clijsters
Cambiar su pregunta después de recibir las respuestas es inapropiado, ya que invalida las respuestas que recibió. Incluso puede hacer que esas respuestas sean incorrectas y afectar negativamente la reputación de quienes respondieron. Si ahora tiene una pregunta nueva o adicional, cree una nueva y pídala allí; puede vincular a este si es necesario para referencia. - DavidPostill♦
Los "caracteres chinos" no pueden corregirse en función de este fragmento de código, ya que no sabemos cuál es el contenido de Msg es ni su tipo de datos. sin embargo porque es "involuntariamente chino", probablemente sea un problema de formato de cadena UTF / unicode. - Yorik


Respuestas:


Me aparece un error: procedimiento o argumento no válido.

Set Fileout = fso.OpenTextFile(filePath, ForAppending, TristateFalse)

Estás pasando TristateFalse como argumento 3. Debe ser el argumento 4.

Por favor, lea la documentación.

Descripción

Abre un archivo especificado y devuelve un objeto TextStream que puede ser   usado para leer o anexar al archivo.

Sintaxis

object.OpenTextFile(filename[, iomode[, create[, format]]])

El método OpenTextFile tiene estas partes:

Part      Description
----      -----------
object    Required. Always the name of a FileSystemObject.
filename  Required. String expression that identifies the file to open.
iomode    Optional. Indicates input/output mode. Can be one of two constants, either ForReading or ForAppending.
create    Optional. Boolean value that indicates whether a new file can be created if the specified filename doesn't exist. The value is True if a new file is created; False if it isn't created. The default is False.
format    Optional. One of three Tristate values used to indicate the format of the opened file. If omitted, the file is opened as ASCII.

Fuente Método OpenTextFile


2



De acuerdo, mi error no fue especificar qué era mi "ParaPago", que debería ser 8, y no necesitaba TristateFalse. Pero después de agregar con éxito al texto, ¿el texto está en caracteres chinos? revise la pregunta editada - user590792
Cambiar su pregunta después de recibir las respuestas es inapropiado, ya que invalida las respuestas que recibió. Incluso puede hacer que esas respuestas sean incorrectas y afectar negativamente la reputación de quienes respondieron. Si ahora tiene una pregunta nueva o adicional, cree una nueva y pídala allí; puede vincular a este si es necesario para referencia. - DavidPostill♦