Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.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
Vba Excel 2010-粘贴复制的单元格时,为什么它出现在引号中而缺少换行符?_Vba_Excel_Excel 2010 - Fatal编程技术网

Vba Excel 2010-粘贴复制的单元格时,为什么它出现在引号中而缺少换行符?

Vba Excel 2010-粘贴复制的单元格时,为什么它出现在引号中而缺少换行符?,vba,excel,excel-2010,Vba,Excel,Excel 2010,我有一个奇怪的问题,当我将复制的单元格中的数据从excel粘贴到NotePad++时,它会将数据放在引号中,并忽略单元格中的换行符 我正在创建复制范围,尽管我尝试从VBA脚本中手动复制一个单元格,该脚本也会将数据添加到单元格中 以下是代码,以备使用: Sub Ready_For_Infra() Dim ws1 As Worksheet, ws2 As Worksheet Dim cell As Range Dim i As Long, lastrow As Long,

我有一个奇怪的问题,当我将复制的单元格中的数据从excel粘贴到NotePad++时,它会将数据放在引号中,并忽略单元格中的换行符

我正在创建复制范围,尽管我尝试从VBA脚本中手动复制一个单元格,该脚本也会将数据添加到单元格中

以下是代码,以备使用:

Sub Ready_For_Infra()

    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim cell As Range
    Dim i As Long, lastrow As Long, lastcol As Long, g As Long
    Dim str1 As String

    Set ws1 = Worksheets("InfraData")
    Set ws2 = Worksheets("ActionPlan")

    ws1.Cells.Clear

    With Application
        .EnableEvents = False
        .ScreenUpdating = False
    End With

    With ws2
        lastrow = .Cells(.Rows.Count, 1).End(xlUp).Row
        lastcol = .Cells(1, .Columns.Count).End(xlToLeft).Column
        For i = lastrow To 2 Step -1
            str1 = ""
            For Each cell In .Range(.Cells(i, 6), .Cells(i, lastcol))
                g = i - 1
                If cell.Column <> 4 And cell.Column <> 5 And cell.Value <> "" And cell.Value <> "NEW ACTION" Then str1 = str1 & cell.Value & Chr(10) & "(" & cell.Offset(-g, 0).Value & ")" & Chr(10)
            Next cell
            ws1.Range("A" & 2 + lastrow - i).Value = ws2.Cells(i, 1).Value & Chr(10) & Chr(10) & ws2.Cells(i, 2).Value & Chr(10) & Chr(10) & str1
        Next i
    End With

    ws1.Range("A2", "A" & lastrow).Copy

With Application
    .EnableEvents = True
    .ScreenUpdating = True
End With

MsgBox "Done"


End Sub
但实际上是这样的:

1

Testing1

Another Day of testing
(05/03/2014)
"1Testing1AnotherDayoftesting(05/03/2014)"
然而,当我将它粘贴到这里时,它似乎包括换行符和空格,但仍然包括引号。见下文

"1

Testing1

Another Day of testing
(05/03/2014)
"

为了避免在从Excel粘贴到记事本或其他文件时遗漏引号,我使用以下代码将内容放入剪贴板:

Dim obj As New DataObject
obj.SetText NameofYourVariable
obj.PutInClipboard

然后它粘贴得很好,没有任何双引号。

我认为Chr10和Chr10应该是Chr13和Chr10两次我刚刚试过,Chr10或VbLf足以换行,不需要回车Chr13或VbCr。我只使用control+v粘贴它。但是,在word中,如果选择“仅粘贴文本”,则仅在数据周围添加引号。所有其他粘贴选项将删除引号并保留换行符。我将保留此问题,因为如果有其他人找到解决此问题的其他方法,我将非常高兴。然而,我已经克服了这一点,将每个单元格粘贴到一个txt文件中的正确格式,然后复制该文件的全部内容。这将删除引号并保留基本格式。嗨!请格式化你的代码!请参阅“帮助”部分了解如何操作