При сцепке текста используется формула с использование "Alt + Enter":
Код
=D4&"
"&E4&"
"&F4
При копировании текста из вычисляемой ячейки и вставки в блокнот, текст копируется с лишними кавычками: "строка 1 строка 2 ""'строка 3'""" красным цветом выделены лишние кавычки
А нужно чтобы он копировался в формате строка 1 строка 2 "'строка 3'"
Sub test()
Dim s As String
With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
s = Range("D4").Value & vbCrLf & Range("E4").Value & vbCrLf & Range("F4").Value
.SetText s
.PutInClipboard
End With
End Sub
Но под блокнот подстраиваться вряд ли конечная задача
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
ZVI, Хотелось чтобы сцепку делал Excel в формуле. Немного подкорректировал ваш код
Код
Sub test_actv_cell()
Dim s As String
With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
s = ActiveCell.Value
.SetText s
.PutInClipboard
End With
End Sub
В принципе он выполняет, то, что требуется В VBA не силён, поэтому сделал как понимаю..
JeyCi, VBA не силён... поэтому для меня это как-то "наворочено"... Буду признателен, если предложите свой вариант на ниже приведённые вопросы.
Вопросы 1. Если мой вариант кода составлен некорректно, буду признателен если посоветуете более правильную версию. 2. Как сделать чтобы в буфер обмена копировался диапазон "Таблица13[Столбец4]"?
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Sub ToClipboatrd()
Const RNG = "Таблица13[Столбец4]" ' <-- диапазон
Dim s As String, a, b
With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
a = Range(RNG).Value
If IsArray(a) Then
ReDim b(1 To UBound(a))
For i = 1 To UBound(a)
b(i) = a(i, 1)
Next
s = Join(b, vbLf)
Else
s = a
End If
.SetText s
.PutInClipboard
End With
End Sub
Дополню, что вместо Const RNG = "Таблица13[Столбец4]" можно написать, например Const RNG = "G8:G9" А если нужно значения ячеек, выделенных пользователем, то строка с Const RNG не нужна, а вместо a = Range(RNG).Value нужно записать a = Selection.Value Непонятно только зачем вообще буфер обмена использовать, если это не конечная задача, напишите тогда поконкретнее.