2017-01-30 2 views
3

Мне нужно немного помочь с созданием пакетного файла и наклеить определенный диапазон от excel в него, но сохраняя текст, поскольку он отображается в excel.
Exemple: (это содержание ячейки Я хочу, чтобы вставить в пакетный файл)Вставить в содержимое ячейки блокнота от 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 ""') делать (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 

Ideea: Одно «решение» должно вставить его сначала в Word, а затем скопировать его снова и вставить в блокнот, но это должно работать со всеми стандартными компьютерами, и я заметил, что не так много, что приложение Word на vba оказалось по умолчанию.

ответ

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 

(Это заменяет \ п новые линии, которые существуют в клетке с \ г \ п, которая является причиной всего появляющегося на одной линии)

+0

Спасибо, но я получу ошибку 55: Файл уже открыт. (я не понимаю, какой файл уже открыт?!). Я сделал блокнот с dump.txt ... – MisterA

+0

Закройте все открытые файлы, код создает его автоматически. –

+0

Я ничего не вижу (посмотрел также список процессов, чтобы завершить его задачу). – MisterA

0

на основе 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 
Смежные вопросы