粘贴到没有引号的文本文件中

时间:2017-07-21 10:46:53

标签: excel vba

我正在编写一个从单元格复制到测试文件(.sql)的脚本

每次我创建一个新文件时,结果都是双引号,这是不可接受的,因为它必须是一个SQL脚本并且带引号它不会起作用。

Private Sub CommandButton1_Click()

Dim wb As Workbook
Dim saveFile As String
Dim WorkRng As Range

Sheets("TU").Columns(10).Copy

Sheets("TU").Columns(11).PasteSpecial xlPasteValues

On Error Resume Next

Set WorkRng = Range("K3:K20")

Set wb = Application.Workbooks.Add
WorkRng.Copy
wb.Worksheets(1).Paste
saveFile = Application.GetSaveAsFilename(fileFilter:="Text Files (*.sql), *.sql")

wb.SaveAs Filename:=saveFile, FileFormat:=xlTextWindows, CreateBackup:=False
wb.Close

End Sub

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

检查了这一点,这并没有像我的单引号那样显示。每个单元格的原始值是否包含单引号?

如果是这种情况,那么您可以在单元格上尝试循环,并在将值粘贴到K列后替换每个引号。

Private Sub CommandButton1_Click()

Dim wb As Workbook
Dim saveFile As String
Dim WorkRng As Range
Dim cell As Range, rng As Range
Set rng = Range("K:K")

Sheets("TU").Columns(10).Copy

Sheets("TU").Columns(11).PasteSpecial xlPasteValues

For Each cell In rng

    If cell.Value = "" Then
     Exit For
    End If

    If InStr(1, cell.Value, "'") > 0 Then
        cell.Value = Replace(cell.Value, "'", "")
    End If
Next cell


On Error Resume Next

Set WorkRng = Range("K3:K20")

Set wb = Application.Workbooks.Add
WorkRng.Copy
wb.Worksheets(1).Paste
saveFile = Application.GetSaveAsFilename(fileFilter:="Text Files (*.sql), *.sql")

wb.SaveAs Filename:=saveFile, FileFormat:=xlTextWindows, CreateBackup:=False
wb.Close

End Sub