Excel到文本VBA前面带有问号-如何修复?
我对Excel中的VBA非常陌生。我正在使用我从在线示例片段拼凑而成的代码将Excel中的一列单元格转换为文本文件: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.
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。我的另一个建议是,如果替换不起作用,就加上撇号,这样它将是一个注释掉的字段,所以我很高兴它立即击中了您,并且起了作用!