从Excel复制内容粘贴到记事本单元格中?

3

我需要一些关于批处理文件的帮助,需要将Excel中的某个范围复制到批处理文件中,但是需要保持文本与在Excel中显示的样式一致。
例子:(这是一个要粘贴到批处理文件中的单元格内容)

"pushd N:\contracte\CONTRACTE NEVOI PERSONALE\Contracte nevoi personale 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 ---"

问题1:所有内容都会显示在单行中,如下所示: pushd N:\contracte\CONTRACTE NEVOI PERSONALE\Contracte nevoi personale 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:它会将原始文本中的每个逗号都加倍。

这是我现有的代码,它只会将范围内的信息粘贴到记事本中(带有上述问题):

Sub test()
    'The range that contains the values
    Range("D:D").Copy
    'Start Notepad And let it recieve focus
    Shell "notepad.exe", vbNormalFocus
    'Send the keys CTRL+V To Notepad (i.e the window that has focus)
    SendKeys "^V"
End Sub

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

2个回答

2

最好将文本写入文件,然后在记事本中打开该文件,这样你就可以控制格式,并且不会覆盖用户可能存在剪贴板中的任何内容。

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

这将替换单元格中存在的 \n 换行符为 \r\n,这是导致所有内容显示在一行的原因。


谢谢,但我收到错误55:文件已经打开。(我不明白,哪个文件已经打开了?!)我用dump.txt制作了一个记事本... - MisterA
关闭正在打开该文件的任何程序,代码将自动创建它。 - Alex K.
我没有看到任何已打开的东西(也查看了进程列表来结束任务)。 - MisterA
我似乎无法复制整个范围(D2:D),显示“对象方法的范围失败”。有没有办法让它复制所有的D:D? - MisterA
从D1向下,所有单元格都有文本还是有空白的间隙? - Alex K.

1
根据Alex K的答案,这适用于一个范围:
  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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接