是否从excel粘贴到记事本单元格内容?

是否从excel粘贴到记事本单元格内容?,excel,vba,Excel,Vba,我需要一些帮助来创建一个批处理文件,并将excel中的某个范围粘贴到其中,但保持文本在excel中的显示。 示例:(这是我要粘贴到批处理文件中的单元格内容) 问题1:所有内容将显示在一行中,如下所示: pushd N:\contracte\contracte NEVOI personal\contracte NEVOI personal 102501N-105000N\for/f“delims=”“%%a in('dir/b/s^ find“104020”)do(cd..xcopy“%%a”“C

我需要一些帮助来创建一个批处理文件,并将excel中的某个范围粘贴到其中,但保持文本在excel中的显示。
示例:(这是我要粘贴到批处理文件中的单元格内容)

问题1:所有内容将显示在一行中,如下所示: pushd N:\contracte\contracte NEVOI personal\contracte NEVOI personal 102501N-105000N\for/f“delims=”“%%a in('dir/b/s^ find“104020”)do(cd..xcopy“%%a”“C:\Users\agrigoriu\Desktop\COPIERE\”/E/D/Y)@ECHO--”

问题2:它将原文中的每个逗号加倍

这是我到目前为止的代码,它只将范围中的信息粘贴到记事本中(存在上述问题):


Ideea:一个“解决方案”“首先将其粘贴到Word中,然后再次复制并粘贴到记事本中,但这必须适用于所有标准计算机,我观察到,并不是很多计算机默认打开vba上的Word应用程序。

最好将文本写入文件,然后在记事本中打开该文件,这样,您就可以控制格式设置,并且不会丢弃用户剪贴板中的任何内容

Dim hF As Integer:  hF = FreeFile()
'// get temp file name
Dim path As String: path = Environ$("TEMP") & "\DUMP.TXT"

Open path For Output As #hF
    Print #hF, Replace$(Range("D1").Text, vbLf, vbCrLf)
Close #hF

Shell "NOTEPAD.EXE " & path, vbNormalFocus

(这将用\r\n替换单元格中存在的新行,这是所有内容出现在一行上的原因)

基于Alex K answer,这适用于以下范围:

  Sub test()

Dim hF As Integer:  hF = FreeFile()
Dim output As String

'// get temp file name
Dim path As String: path = Environ$("TEMP") & "\DUMP.TXT"
  Range("D2:D2000").Select
Open path For Output As #hF
    For Each c In Selection
       Print #hF, Replace(c.Value, vbLf, vbCrLf)
        Next c
Close #hF

Shell "NOTEPAD.EXE " & path, vbNormalFocus
End Sub

谢谢,但我得到错误55:文件已经打开。(我不明白,什么文件已经打开了?!)。我用dump.txt制作了一个记事本…关闭打开该文件的任何内容,代码会自动创建它。我没有看到任何打开的内容(同时查看进程列表以结束任务)。我似乎没有让它复制整个范围(D2:D),说“对象范围方法失败”。有没有办法让它复制所有的D:D?从D1向下是所有的单元格都有文本还是有间隙?
Dim hF As Integer:  hF = FreeFile()
'// get temp file name
Dim path As String: path = Environ$("TEMP") & "\DUMP.TXT"

Open path For Output As #hF
    Print #hF, Replace$(Range("D1").Text, vbLf, vbCrLf)
Close #hF

Shell "NOTEPAD.EXE " & path, vbNormalFocus
  Sub test()

Dim hF As Integer:  hF = FreeFile()
Dim output As String

'// get temp file name
Dim path As String: path = Environ$("TEMP") & "\DUMP.TXT"
  Range("D2:D2000").Select
Open path For Output As #hF
    For Each c In Selection
       Print #hF, Replace(c.Value, vbLf, vbCrLf)
        Next c
Close #hF

Shell "NOTEPAD.EXE " & path, vbNormalFocus
End Sub