Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel到文本VBA前面带有问号-如何修复?_Excel_Vba - Fatal编程技术网

Excel到文本VBA前面带有问号-如何修复?

Excel到文本VBA前面带有问号-如何修复?,excel,vba,Excel,Vba,我对Excel中的VBA非常陌生。我正在使用我从在线示例片段拼凑而成的代码将Excel中的一列单元格转换为文本文件: Private Sub CommandButton1_Click() Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer Dim FName As String Dim FPath As String Set fsT = CreateObject("ADODB.

我对Excel中的VBA非常陌生。我正在使用我从在线示例片段拼凑而成的代码将Excel中的一列单元格转换为文本文件:

Private Sub CommandButton1_Click()
Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer
Dim FName As String
Dim FPath As String

Set fsT = CreateObject("ADODB.Stream"): 'Create Stream object
fsT.Type = 2: 'Specify stream type – we want To save text/string data.
fsT.Charset = "utf-8": 'Specify charset For the source text data.

FPath = "C:\WHIT\ParamGen"
FName = Sheets("Sheet1").Range("b49").Text

myFile = FPath & "\" & FName

Set rng = Range("B2: B42 ")

Open myFile For Output As #1

For i = 1 To rng.Rows.Count
    For j = 1 To rng.Columns.Count

cellValue = rng.Cells(i, j).Value

If j = rng.Columns.Count Then
    Print #1, cellValue
Else
    Print #1, cellValue,
End If

    Next j
Next i

Close #1

End Sub
问题是Excel文件中的第一个单元格包含以下文本:

@!=一,

…它会显示在生成的文本文件中,如下所示:

?@=一,

excel文件中的所有其他内容都会毫无问题地写入文本文件,但这个问号会弄乱生成此文件的软件中的导入功能


有什么办法让这个问号消失吗?

你有没有试着去掉这个问号?文件中包含代码,例如:

If left(cellvalue,1)="?" then 
    application.substitute(cellvalue,"?","") 
end if

我用第一个包含@的单元格运行了这段代码=1,并正确写入文本文件@=1没有?补充。是否检查B2单元格是否包含任何不可打印的字符?

我找到了解决方案。Excel正在处理@=1在第一个细胞中作为一个功能,但它不是一个功能性功能。我最好的猜测是,当它将其解析为文本文件时,它在其中抛出了一个不可见的字符。正在用“@”覆盖有问题的单元格=我成功了。

我不知道为什么会这样?正在添加,但希望像这样的soemthing将摆脱它,让您继续前进。好的,那么进一步的背景。我生成的文件是一个参数文件,我从试图导入的软件中粘贴了一个预创建的参数文件。原来的,就在那里!=1个来自中国。回头再看一遍,我试着手动输入第一行,Excel认为我在尝试使用一个函数。@符号是Excel中的函数指示符吗?不管是哪种方式,我都在它前面加了一个强制性的“让它不要把它当作函数来对待,然后重新运行脚本”。这一次效果很好。@VanGoghComplex我相信@符号表示一个函数;有人告诉我,这是XML功能的一部分,但除此之外,我没有任何依据,因为我不熟悉XML。我的另一个建议是,如果替换不起作用,就加上撇号,这样它将是一个注释掉的字段,所以我很高兴它立即击中了您,并且起了作用!