2017-03-23 157 views
2

我正在制作一个获取大量信息的Excel工作表。 某些列有我需要在脚本中使用的信息,并且我使用以下代码发现可以保存我在单击按钮后在.txt文件中选择的任何内容。将选定单元格的输出写为不带“引号”的.txt文件

Private Sub CommandButton21_Click() 
    Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer 
    myFile = Application.DefaultFilePath & "\NumeroChamados.txt" 
    Set rng = Selection 
    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 

      Write #1, cellValue 

     Else 
      Write #1, cellValue, 
     End If 
      Next j 
     Next i 
     Close #1 
End Sub 

事情是一切,我保存如下面的例子引号结束:

"4146546546523133" 
"4285725763131" 
"461" 
"4230236646435356694197285187451644148" 
"4230375763756379653464564" 

我通常选择含有从我使用宏来得到它另一个小区中的字符串的细胞。

+0

什么是您的数据是什么样子?我在我的计算机上运行代码,完全按照您的代码(相同的目录/文件名)运行,并且只显示直线数字。我做了'304' /'187','440'等。你的数据有引号吗?另外,另一方面,你的'Else'语句不会做任何不同的事情......你打算以后还是错过了一些东西? – BruceWayne

+0

实际上,单元格从另一个包含一些文本的单元格中提取字符串。 问题已更新。 –

+0

单元格如何从包含某些文本的另一个单元格中提取字符串。那些其他的单元格是否有引号?提取的公式是否添加引号?在这两个单元格中是否有换行符或类似的东西? – JNevill

回答

3

为避免向Excel解释为字符串(即使是文本看起来像一个数字)的任何内容添加换行引号,请使用Print而不是Write

Private Sub CommandButton1_Click() 
    Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer 
    myFile = Application.DefaultFilePath & "\NumeroChamados.txt" 
    Set rng = Selection 
    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 

enter image description here

+0

这工作。谢了哥们。 –

相关问题