Страницы: Пред. 1 2
RSS
как сделать чтобы из ячеек excel не копировался символ ¶ в конце (при вставке в 1с)?
 
Цитата
samara-ley написал: чтобы при вставке значения из Excel в Word, причем вставка со связью, убирались отступы вначале и вконце вставляемого значения
В Excel скопировать ячейку, затем в WinWord на вкладке Главная выбрать: Вставить – Специальная вставка – Связать – Текст в формате RTF - OK
 
Можно ли решить эту задачу без макросов VBA, - а только клавиатурой?
Задумка такая: вставляю на панель быстрого доступа значок "Вставить значения". Через ALT+9 вставляю в свободную ячейку значение и копирую содержимое ячейки в режиме редактирования.

Вопрос такой: можно ли сочетанием клавиш и (или) их последовательностью переместиться в свободную ячейку, а затем вернуться на исходную, - иначе говоря: как клавиатурой переместится на свободную ячейку и вернуться на исходную?
 
Всем добрый день. Также столкнулся с этой проблемой и также с 1С.
Excel 2016, 64 бита, Винда 10.
MSForms нормально не срабатывала.
Решил её таким образом.
Код
Sub CopyPaste()
Dim scode As String
A = Selection.Cells.count
If A > 1 Then
Selection.Copy
Exit Sub
End If
scode = ActiveCell
scode = Replace$(scode, Chr$(13), "")
ClipBoard_SetData scode
End Sub

Смотрим сколько ячеек выделено. Если это 1 ячейка, то она копируется без символа №13. В моем случае именно он был причиной ¶.
Если выделено больше одной ячейки, то происходит стандартное копирование.

Поставил макрос на cntrl+C, поэтому работает как обычное копирование в принципе.
Единственное что, макрос срабатывает по нажатию кнопок только если на клавиатуре стоит английская раскладка.
Если русская, то он не срабатывает. Может быть неудобно.

тем временем общаюсь с нашими 1Сниками, возможно ли решить проблему на уровне их программы, чтобы буфер обмена очищался именно при вставке в 1С, а не при копировании из экселя.
Изменено: Trixter - 26.02.2020 13:31:14
 
Цитата
The_Prist написал:
Sub the_priest_copy()With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")    .SetText Range("A1").Value    .PutInClipboardEnd WithEnd Sub
Спасибо! Работает
 
Добрый день. подскажите пожалуйста. возможно ли чтобы данный макрос копировал не только по 1 ячейке, а например обрабатывал все выделенные ячейки в столбце
Код
Sub the_priest_copy()
With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    .SetText ActiveCell.Value
    .PutInClipboard
End With
End Sub
При замене ActiveCell на Selection выдает ошибку
Run-Time error '13'
Type mismatch
Изменено: Leming - 10.06.2020 11:38:55
 
Привет!
Цитата
Leming написал:
обрабатывал все выделенные ячейки
Скрытый текст
Сравнение прайсов, таблиц - без настроек
 
Inexsu, Заменяю в Personal.xlsb код на ваш и после этого не видит его в макросах на вкладке разработчика, чтобы назначить на горячие клавиши, а если добавляю начиная с Dim то выдает ошибку в строке For Each cell In rng.Cells
Изменено: Leming - 20.07.2020 09:48:58
 
Нужно было много копировать в 1С по одной ячейке. Взял этот код (из 15-го сообщения). Понял, что не хочется жать Ctrl+C и добавил таймер в цикле. Теперь копирование осуществляется из активной ячейки - переключаюсь в эксел по Alt+Tab, стрелкой перехожу на нужную ячейку, снова Alt+Tab на 1С и Ctl+V.
Код
Sub Autocopy()
     Application.OnTime Now + TimeSerial(0, 0, 1), "Proc"
End Sub

Sub Proc()
     With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
.         SetText ActiveCell.Value
.         PutInClipboard
     End With

     Autocopy
End Sub
 
Добрый день. Ни один из вышепредложенных вариантов мне не помог. В день по 10 000 раз копирую из эксель и вставляю в 1С и удаляю знак ¶. Почему макросы не срабатывают? Может я что-то не так делаю? В файле открываю через Alt+F11, открываю и вставляю:


Сохраняю. Ну всё же правильно?
Изменено: Наталья Валиева - 22.07.2022 06:31:44
 
Цитата
написал:
Максим, сократим строчек до 4?
Код
    [URL=#]?[/URL]       1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24      Sub   the_priest_copy()          Dim   DtO   As   New   MSForms.DataObject, S, outS(), i&, k&, outA$          Range(  "A1"  ).Value = Application.Clean(Range(  "A1"  ).Value)      ' оставили только печатные символы          DtO.SetText Range(  "A1"  ).Value          DtO.PutInClipboard              DtO.GetFromClipboard          S = DtO.GetText          k = 1          ReDim   outS(1   To   LenB(S))          For   i = 1   To   LenB(S)              outS(i) = AscB(MidB(S, i, 1))          Next          outA = outA & vbCrLf &   "Символы в буфере: "   & vbCrLf & Join(outS,   "-"  )          ' чистим буфер          If   InStr(S, Chr(13) & Chr(10)) > 0   Then   S = Replace(DtO.GetText, Chr(13) & Chr(10),   ""  )          k = 1          ReDim   outS(1   To   LenB(S))          For   i = 1   To   LenB(S)              outS(i) = AscB(MidB(S, i, 1))          Next          outA = outA & vbCrLf &   "Символы в буфере после очистки: "   & vbCrLf & Join(outS,   "-"  )          MsgBox outA    End   Sub   
  т.е. вообще по сути достаточно будет и такого кода:
Код
    [URL=#]?[/URL]       1  2  3  4  5  6      Sub   the_priest_copy()    With   GetObject(  "New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}"  )          .SetText Range(  "A1"  ).Value          .PutInClipboard    End   With    End   Sub   
 
Добрый день!

Пробовал ваш короткий вариант кода но у буфер обмена почему то при вставке из буфера обмена вставляется два вопросительных знака.

Windows 10 Pro x64
Microsoft Office профессиональный 2019
 
Цитата
Leon78 написал:
With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
   .SetText Range("A1").Value
   .PutInClipboard
End With
Здравствуте. Вопрос, на одном пк при использовании макроса в буфер попадают некие символы " ￿￿ " Я так понима. проблема с кодировкой, подскажите где что поменять...  Заранее спасибо
 
не то
Изменено: Jane_G - 12.12.2023 14:28:38
Страницы: Пред. 1 2
Наверх