Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 След.
Как занести в Выпадающий список строку из одной ячейки и строка стала списком?, Нужны выпадающие списки зависящие от значения в соседней ячейке.
 
Цитата
AlexGor написал:
функция через VBA
я про то, что на мой взгляд для решения данного вопроса оптимальный вариант из #4.
Переделать код в функцию и возможно будут пользовать. Вопрос только в скорости, как нибудь проверю.
Что быстрее: Дополнительные столбцы или 3-х этажная формула?
 
Здравствуйте

Подскажите пожалуйста что быстрее работает, дополнительные столбцы или 3-х этажная формула?

В приложенном файле 2 варианта расчёта: 1-й с разбитием формулы на столбцы, 2-й всё в кучу, в одной ячейке.
Какой вариант быстрее считается и меньше тормозит файл при открытии, если таких формул куча?

Интересно как происходит пересчёт книги:
Как я понимаю в 1-м варианте ИНДЕКС() в ячейке "F4" считается 1 раз и далее формула уже использует только значение.
А во 2-м варианте, ИНДЕКС() считается 6 раз, или вообще разницы нет?

Хотелось бы понять, что предпочтительнее использовать?
Изменено: AlexGor - 16.10.2024 09:26:57
Как занести в Выпадающий список строку из одной ячейки и строка стала списком?, Нужны выпадающие списки зависящие от значения в соседней ячейке.
 
Цитата
Sanja написал:
версий (от 2021)
У меня 19-й, не пошёл.

Куча массивов, и также используется ДВССЫЛ(), а с ним стандартными способами получается проще.

Для ситуации с большим количеством вариантов ВС думаю рабочим может быть:
функция через VBA, что-то типа "Строка в ВС"($A1), эту функцию в проверку данных. А в столбце "A" уже сами строки типа 1с;2с;3с;4с.
Может когда и доберусь такую функцию написать, пока решил вопрос стандартными средствами.

С функцией наверное стоит заморачиваться если такой способ будет быстрее работать чем стандартные методы, но это уже другой вопрос.
Как занести в Выпадающий список строку из одной ячейки и строка стала списком?, Нужны выпадающие списки зависящие от значения в соседней ячейке.
 
Цитата
DAB написал:
А если воспользоваться инструментом разделения текста по колонкам (выбрав разделителем точку с запятой)?
Имеется ввиду раскидать строку по ячейкам к примеру в право? Если так, то в моём случае в каждой строке будет задействовано 5 ячеек. Строк у меня почти 3 000, точно быстрее не будет. Если использовать ДВССЫЛ() то всего лишь табличка 5*10.
А вот если вариантов выпадающего списка гораздо больше чем 10, то ВС строкой в ячейке наверное было бы удобнее. Но его получается пока в Excel нет.
Как занести в Выпадающий список строку из одной ячейки и строка стала списком?, Нужны выпадающие списки зависящие от значения в соседней ячейке.
 
Цитата
МатросНаЗебре написал:
макрос
Круто! Есть над чем задуматься.

Правда не думаю что макрос тут применим, вернее будет быстрее и оптимальнее. Т.к. ВС в моём случае должен работать в момент заполнения соседней ячейки. Наверное можно его привязать на активацию соседней ячейки, но придётся дополнять кучей условий, чтоб срабатывал только когда нужно. Скорее всего получится громоздко. А при наличии и в сравнении с ДВССЫЛ() возможно оно того не стоит. Благо у меня всего 10 вариантов выпадающего списка, табличку из 10 столбцов можно разместить.
Но как было бы круто если б можно было ВС просто прописывать строкой в ячейке.!
Как занести в Выпадающий список строку из одной ячейки и строка стала списком?, Нужны выпадающие списки зависящие от значения в соседней ячейке.
 
МатросНаЗебре, День добрый.
Разбирать на ячейки - в смысле создавать небольшую табличку? Но тогда табличка нужна для каждой строки, многовато.

Я изначально думал достаточно в "таблицу значений" прописать (строкой) нужный список на против каждой позиции, руками же когда строку в ВС вставляешь работает. Типа никаких лишних таблиц, один столбец и всё). Оказалось не вариант, работает но вместо списка ВС выдаёт строку целиком. Чтоб этот вариант работал строка должна как-то превратиться в понятный ВС массив. В общем хотелось процесс упростить-ускорить.

Пока делаю вариант через отдельную умную табличку и ДВССЫЛ() на неё, т.к. этот не работает.
Вообще странно, в Excel для варианта со строкой вроде всё есть, не хватает всего лишь одной конвертации и был бы ещё один вариант создания выпадающих списков.
Как занести в Выпадающий список строку из одной ячейки и строка стала списком?, Нужны выпадающие списки зависящие от значения в соседней ячейке.
 
Здравствуйте.

Подскажите пожалуйста:
как в выпадающем списке прописать ссылку на ячёйку в которой лежит выпадающий список в виде строки?
Или может какой разделитель использовать в строке, чтобы ВС эту строку воспринял как список?

Смысл в том, что у каждого значения в первом столбце свой ВС выбираемый из таблицы значений.
[ Закрыто] Выпадающий список, Как занести в ВС строку из одной ячейки и строка стала списком?
 
Здравствуйте.

Подскажите пожалуйста, гугл не помогает),
как в выпадающем списке прописать ссылку на ячёйку в которой лежит выпадающий список в виде строки?
Или может какой разделитель использовать в строке, чтобы ВС эту строку воспринял как список?

Смысл в том, что у каждого значения в первом столбце свой ВС выбираемый из таблицы значений.
Пустая PLEX, Необходимо закрыть надстройку по образцу PLEX и создать файл, желательно "exe", для разблокировки "ОПЕРАТОР" и "РАЗРАБОТЧИК"
 
asesja,
На сколько я помню, Ваша прога с .xlam не работает?
Пустая PLEX, Необходимо закрыть надстройку по образцу PLEX и создать файл, желательно "exe", для разблокировки "ОПЕРАТОР" и "РАЗРАБОТЧИК"
 
Здравствуйте.
Нужно закрыть надстройку раз и навсегда. Разблокировать не нужно.

Помогите пожалуйста с закрывашкой, понятно что любой знающий такую защиту вскроет на раз, нужна закрывашка от таких как я)
Чтоб решение по вскрытию не выскакивало по первому запросу в гугле)

Файл .xlam, свежий Office.
Изменено: AlexGor - 05.07.2024 01:28:25
Многократная обработка нескольких столбцов, Нужен оптимальный вариант пошаговой обработка нескольких столбцов. Через словари или коллекции, что в данном случае удобнее.
 
Здравствуйте.

Хотелось бы получить:
Сроков нет, пока кода нет обрабатываю в ручную, как код будет порадуюсь.
Хотелось бы получить хотя бы основу, (не костыльный вариант, а то как это делают знатоки, "правильно-оптимально") кода обработки первых двух проходов. Остальную рутину, кучу проверок, возможно допилю сам.
Хотелось бы иметь правильную основу, на моём файле (возможно хоть с минимальными приписками-пояснениями в коде, что куда. Или просто рабочий код), чтобы дальше учиться и дорабатывать остальной функционал.
Отдельно или вместе, код расчёта значения [Shg_KGdiff], ячейка V4. Как я понимаю чтобы уйти в код и вернуться на лист уже с окончательными значениями столбца DOCS в код, в начале нужно брать и столбцы из которых считается [Shg_KGdiff], по формулам в ячейках видно откуда что берётся.

Напишите пожалуйста в личку за сколько Вам интересно сделать часть, какую, или всё.
Сразу не отвечу, у меня уже ночь, да и выходные.)

Нужно обрабатывать 5 столбцов в несколько проходов. (для значения [Shg_KGdiff], ячейка V4 доп столбцы, видно по формулам)
1-й столбец - стиль изделия (STYLE = D)
2-й - размер, (SIZE =H)
3-й - (WORK = P) вес плановый из чертежа, но может быть и вес взвешивания, об этом говорит значение в столбце 4,
4-й - (Q) индикатор, какой вес в столбце 3
5 - (DOCS - R) вес из упаковочного листа.
1-й + 2-й столбцы = модель изделия. Нужно много раз проходить по всем позициям и проверять соответствие разным условиям.

Первый проход:
Обработку нужно делать по моделям т.к. если хоть у одной позиции есть результат взвешивания, остальным позициям, такой же модели ставим вес взвешивания.
Если в одной коллекции нет ни одного результата взвешивания то проверка и выполнение условия = у всех позиций, одной модели одинаковый вес.
Если вес различается, остановка обработки, сообщение и дальнейшая ручная корректировка базы. В моём файле первое такое сообщение выскочит на OEM 022 19x8.0 т.к. один вес =11,56 другой 11,58. После сообщения и ручной корректировки, в начале выполнения кода уже у обоих вес будет = 11,57
Аналогично OEM 022 19x9.0 после сообщения и ручной корректировки базы у обоих вес будет = 12,16

Второй проход, либо во время первого прохода:
Нужно сравнивать веса одинакового стиля (ст1) и разных размеров (ст2), чтоб у меньшего размера, не был вес больше, чем у большего размера.
Сравниваем OEM 022 19x8.0 и OEM 022 19x9.0: разница веса WORK  12,16 - 11,57=0,59. Соответственно разница веса в столбце DOCS 12,7 - 12,2= 0,5 не должна быть меньше 0,59, а у нас 0,5, это меньше. Нужно корректировать столбец DOCS: если [Shg_KGdiff] положительное значение, то меняем 12,7 на 12,79 (12,79=12,7+(0,59-0,5)) , если же отрицательное то 12,2 меняем на 12,11 (12,11=12,2-(0,59-0,5)). И так далее по всем строкам. Такое сравнение проводится только в рамках одного STYLE, разные стили между собой не сравниваются.

Отдельным блоком или может ёщё как нужно перевести в VBA расчёт значения [Shg_KGdiff], ячейка V4  т.к. дальнейшая обработка полностью зависит от этого значения, придётся постоянно выгружать промежуточные значения столбца DOCS что будет сильно тормозить процесс расчёта.

Дальнейшие проходы, не знаю сколько их получится:
Пока выгрузка обратно на лист, там работают формулы и считается общий вес. Сравниваем получившийся общий вес с общим весом контейнера из взвешивания. И разницу веса нужно равномерно распределить, помодельно, сначала на модели где нет взвешивания, а если каждой позиции уже добавлено до 1 кг, то остаток равномерно раскидывается на все модели где взвешивание есть.
Планировал проходить по модельно и каждому диску добавлять или убирать (в зависимости от значения [Shg_KGdiff]) по 0,1кг пока общий вес не сравняется. Но до этого ещё нужно дожить.
VBA Из массива создать коллекцию коллекций, VBA Разбить массив на коллекции и далее создать коллекцию из этих коллекций
 
Здравствуйте.
Моё первое знакомство с коллекциями, не судите строго.
Есть столбец его в массив (параллельно в такие же массивы берутся ещё несколько столбцов, с таким же количеством строк, это для информации)
Нужно разбить основной столбец на коллекции одинаковых значений и далее эти коллекции собрать в одну коллекцию, чтоб впихнуть их в "For Each".
Чтобы далее обрабатывать массивы согласно коллекциям.
Через циклы у меня это получилось, но только для 5-и уникальных:
Код
Sub Style()
  Dim i As Byte, StrStart As Byte, StrStop As Byte, QtyEL As Byte, Str_arr() As Byte, coll As Variant
  Dim collSTL As New Collection, collSTL1 As New Collection, collSTL2 As New Collection, collSTL3 As New Collection, collSTL4 As New Collection, collSTL5 As New Collection
  Dim cSTL1 As Byte, cSTL2 As Byte, cSTL3 As Byte, cSTL4 As Byte, cSTL5 As Byte
    StrStart = 7
    StrStop = 17
    QtyEL = 1 + StrStop - StrStart
    ReDim Style_arr(1 To QtyEL)
    Style_arr = ActiveSheet.Range(Cells(StrStart, 4), Cells(StrStop, 4)).Value
    'Значения в столбце 4 для заполнения Style_arr:  "OOO 022", "OOO 022", "OOO 022", "OOO 022", "OOO 023", "OOO 023", "OOO 023", "EEE 511", "EEE 511", "FF 431", "FF 431"
    For i = 1 To QtyEL
        If Style_arr(i, 1) = Style_arr(1, 1) Then
            collSTL1.Add Style_arr(i, 1)
        Else
            If cSTL2 = 0 Then cSTL2 = i
            If Style_arr(i, 1) = Style_arr(cSTL2, 1) Then
                collSTL2.Add Style_arr(i, 1)
            Else
                If cSTL3 = 0 Then cSTL3 = i
                If Style_arr(i, 1) = Style_arr(cSTL3, 1) Then
                    collSTL3.Add Style_arr(i, 1)
                Else
                    If cSTL4 = 0 Then cSTL4 = i
                    If Style_arr(i, 1) = Style_arr(cSTL4, 1) Then
                        collSTL4.Add Style_arr(i, 1)
                    Else
                        If cSTL5 = 0 Then cSTL5 = i
                        If Style_arr(i, 1) = Style_arr(cSTL5, 1) Then collSTL5.Add Style_arr(i, 1)
                    End If
                End If
            End If
        End If
    Next i
    collSTL.Add collSTL1
    If collSTL2.Count > 0 Then collSTL.Add collSTL2
    If collSTL3.Count > 0 Then collSTL.Add collSTL3
    If collSTL4.Count > 0 Then collSTL.Add collSTL4
    If collSTL5.Count > 0 Then collSTL.Add collSTL5
For Each coll In collSTL
    'Обработка
Next coll
End Sub
А в столбце может быть до 30 уникальных значений и соответственно нужно 30 коллекций. Мой код нужно увеличивать в 6 раз.

Подскажите пожалуйста: как сделать тоже самое но не так грамоздко?
Автофильтр VBA - нет значений указанных по фильтру
 
Дмитрий(The_Prist) Щербаков, С обращениями к объектам и работой с ними у меня какой-то тупняк. Набрал определённый инструментарий, с ним и кручусь. А заняться изучением, остального вечно времени не хватает.
Спасибо Вам огромное!!!
Автофильтр VBA - нет значений указанных по фильтру
 
Здравствуйте.
Упёрся в случай где нет возможности отказаться от умной таблицы.
Цитата
AlexGor написал:
Подскажите пожалуйста, как подправить, чтоб с автоматическими таблицами работал?
Может хоть кто-то подскажет, как сделать тоже самое, но с умной таблицей? Очень нужно!!!
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
Цитата
AlexGor написал:
может этот код кодировку б/о рихтонул?
Скорее всего этот код (через PowerShell) б/о сносит, из #30 и #75 т.к. на рабочей машине:
- этот код не запустился
- код через класс тестировался и работает
- проблемы с б/о не наблюдаются
-
Код
GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
работает, даже при открытых окнах проводника.
sokol92, может подскажете вариант откатить работу кода назад?
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
Цитата
testuser написал:
Ну так если с этой книги копируете, то лучше сначала вставить это куда-то, прежде чем закрыть эту книгу..
Порядок отработки такой: В основной книге отработала куча функций, сформировались необходимые документы, нужные столбцы в необходимом виде упали в б/о, все книги закрылись, переходим к не офисной программе, вставляем туда столбцы и далее в ней работаем, не возвращаясь к Excel.
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
Цитата
nilske написал:
там ведь чуть выше ссылку на это давали
Ссылки есть а решения проблемы в них нет, только варианты как обойтись без
Код
GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
Цитата
testuser написал:
Может быть сначала выполнить Close_TempWorkbook, потом ".Copy"?
Copy же из этой книги копирует, если её закрыть то откуда копировать будет.
В данном случае TempWorkbook мною коряво используется для того чтоб получить столбцы в нужном порядке и пару пустых столбцов между ними. Это чтоб в 1с вставлять не по одному столбцу, а сразу всё за раз. Приходится подгоняться под форму ввода которая там.
Вариант с TempWorkbook первое что пришло в голову, при обилии других нерешенных задач.

Похоже как-то паникерски я предыдущее сообщение написал, не так всё и страшно, со столбцами разберусь и жить можно.)
Может у меня просто код со столбцами корявый и по факту не работает только
Код
GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
а это более чем можно пережить.
Просто размышления: если все окна проводника закрою GetObject..... начинает нормально работать. Похоже в свежих офисах эту проблему устранили, т.к. раньше у меня работал по всякому и проблем с проводником не наблюдалось, а какой-то код из темы перепрописал кодировку б/о, перепрописал правильно, но без учёта дополнений в новых версиях офис.
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
sokol92,
Цитата
sokol92 написал:
Это обсуждалось  здесь .
там вопрос восстановления стандартной работы б/о не решили.
Цитата
sokol92 написал:
CreateObject("htmlfile").ParentWindow.ClipboardData.SetData "Text", ""
ситуацию не меняет, б/о слетел и работает криво.
Цитата
sokol92 написал:
код  отсюда , указанный Владимиром ( ZVI ).
взял отсюда альтернативный способ кидания текста в б\о, Спасибо. теперь
Код
GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
можно не использовать.
Но главная проблема теперь что стандартные средства б/о не работают. Плюс моя же проблема из #70, обычный
Код
.Copy
работает через ж..., не факт, но возможно также связана с не корректной работой б/о.
Как откатиться назад, чтобы можно было выявить какой код сносит б/о?!

Может кто-то встречал вариант возврата б/о к стандартным настройкам?!
Изменено: AlexGor - 08.04.2024 16:42:06
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
Где-то в проекте использовал вариант от sokol92, из #30
Код
Sub Буфер_Обмена_TEXT_Форматированый_HTML_PS() 'HTML - Может не работать на корпоративных машинах из-за ограничений (безопасности) для вызова PowerShell
  Dim txt1$, txt2$
  txt1 = "22.03.2024"
  txt2 = "This should paste as bold."
  HtmlToClipboard "<span style='font-family:Calibri;font-size:13pt;font-weight:bold;'><p>" & txt1 & "</p></span>" & _
                  "<span style='font-family:Calibri;font-size:13pt'><B>" & txt2 & "</B><br>" & _
                  "Этот текст" & "<br>" & "должен быть нормальным." & "&#128077</span>"
End Sub
' Копирует в буфер обмена строку в Html - формате.
' Теги <HTML> и <BODY> указывать не следует.
Private Sub HtmlToClipboard(ByVal txt As String)
  Dim fso As Object, f As Object, fileName As String
  Set fso = CreateObject("Scripting.FileSystemObject")
  fileName = fso.GetSpecialFolder(2) & "\" & fso.GetTempName() & ".html" ' временный файл
  Set f = fso.OpenTextFile(fileName, 2, True)  ' для записи
  f.Write HtmlEncode("<HTML><BODY>" & txt & "</BODY></HTML>")
  f.Close
  RunPgm "powershell -command ""type " & fileName & " | Set-Clipboard -AsHtml"""
  Set f = Nothing
  Set fso = Nothing
  Kill fileName
End Sub
' Кодирует в строке txt все символы с кодом >=128 по стандарту Html (&#код;).
Private Function HtmlEncode(ByVal txt As String) As String
  Dim arr, n As Long, i As Long, s As String
  If Len(txt) = 0 Then Exit Function
  ReDim arr(1 To Len(txt))
  For i = 1 To Len(txt)
    s = Mid(txt, i, 1)
    n = AscW(s)
    If n > 127 Then
      arr(i) = "&#" & n & ";"
    Else
      arr(i) = s
    End If
  Next i
  HtmlEncode = Join(arr, "")
End Function
' Запуск внешних программ в синхронном режиме
Private Function RunPgm(ByVal pgm)
    Dim wshShell
    Set wshShell = CreateObject("WScript.Shell")
    RunPgm = wshShell.Run("%comspec% /c " & pgm, 0, True)
    Set wshShell = Nothing
End Function
может этот код кодировку б/о рихтонул?
Изменено: AlexGor - 07.04.2024 15:07:00
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
Если запустить
Код
Sub Test_1()
всё норм
потом запустить
Код
Sub Буфер_Обмена()
вставляются ?? в квадратиках
далее снова запускаем
Код
Sub Test_1()
= сообщение "Приложению Microsoft Excel не удалось вставить данные."
Вставляю скопированное в этот же файл Excel, файл не закрываю.
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
testuser,
Код
With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
.SetText "": .PutInClipboard
End With
не помогает
прпобовал
Код
    OpenClipboard 0
в конец кода поставить, не то.
или куда нужно Clear прикрутить?
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
Здравствуйте
testuser, без Вас не справиться.
код из #67 работает без нареканий, но после его отработки перестают работать обычные средства копирования данных в буфер обмена:
Если после кода запустить
Код
Sub Буфер_Обмена()
With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
.SetText "Всем счастья": .PutInClipboard
End With
End Sub

то вставляются два знака вопроса в квадратиках￿￿
Причём достаточно один раз запустить код класса, и всё привет
Код
GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
нормально не работает совсем, даже после перезагрузки.
Думал глюк у меня, нет на другой машине запустил код из #67 и такая же проблема.

Помогите пожалуйста реанимировать буфер обмена.
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
Здравствуйте,
Вопрос немного в сторону от основной темы.
Приколхозил код из #26 для копирования нескольких столбцов в буфер обмена (как значения, но столбцы и определённое количество пустых столбцов между ними)
Запуск с кнопки:
- при попытке вставить скопированное, ошибка, выдаёт сообщение "Приложению Microsoft Excel не удаётся вставить данные."
Если сделать активным
Код
'Stop
и после остановки продолжить выполнение кода, скопируется правильно и код работает.

Подскажите пожалуйста, что не так с кодом
Код
Option Explicit
Public AFLName As String, awb As Workbook, wbx As Workbook
Private Sub Tovary_ToClipboard()
    AFLName = ActiveWorkbook.Name
Dim SheetNm As String, StrStart As Byte, StrStop As Byte, StrEnd As Byte, StbART As String, StbPCS As String, StbPrice As String
Application.ScreenUpdating = False
    Set awb = ActiveWorkbook
    StrStart = 7
    StbART = "E"
    StbPCS = "G"
    StbPrice = "W"
    StrEnd = 16
    StrStop = Columns(StbART).Find(What:="*", After:=Cells(StrEnd, StbART), LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlPrevious).Row
    Workbooks.Add
    Set wbx = ActiveWorkbook
'Stop 'Позже удалить
    ActiveWindow.Visible = False
With awb.Sheets(1)
    wbx.Sheets(1).Range("A1:A" & StrStop - 6).Value = .Range(StbART & StrStart & ":" & StbART & StrStop).Value
    wbx.Sheets(1).Range("D1:D" & StrStop - 6).Value = .Range(StbPCS & StrStart & ":" & StbPCS & StrStop).Value
    wbx.Sheets(1).Range("E1:E" & StrStop - 6).Value = .Range(StbPrice & StrStart & ":" & StbPrice & StrStop).Value
End With
    wbx.Sheets(1).Range("A1:E" & StrStop - 6).Copy
    Close_TempWorkbook
Endd:
Application.ScreenUpdating = True
End Sub
Private Sub Close_TempWorkbook()
On Error Resume Next
wbx.Close 0
Set wbx = Nothing
End Sub
Возможно у меня после тестирования кодов из темы настройки буфера обмена как-то сбились, как реанимировать. Просто предположение)
Изменено: AlexGor - 05.04.2024 05:26:27
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
testuser, Без костыля
Код
GetObject.........
работает нормально, глюк не выскакивал.
Спасибо Вам Огромное!!!
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
sokol92, поэтому я и написал
Цитата
AlexGor написал:
Проблема второго запуска наблюдается только если после запуска кода, скопированный текст никуда не вставить руками и снова запустить код.
Мне же нужно один раз кинуть форматированный текст в БО, после выполнения всех моих процедур и закрыть исходный файл. Поэтому всё ОК.
Позже проверю будет ли проблема второго запуска если поочерёдно отрабатывать 2 файла заканчивающихся вставкой текста в БО, если, после отработки первого файла, оператор передумал вставлять куда-то скопированный текст.
В данном случае увидел интерес специалистов к плавающему глюку и совершенно не против получить более отшлифованный код. Поэтому и трачу время на тестирования которые предлагают.
Изменено: AlexGor - 25.03.2024 16:04:30
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
Цитата
testuser написал:
при повторном выполнении (без последующей вставки) происходит какая-то ошибка,  при следующем (не четном) выполнении ошибка уже исправлена
примерно так, только иу меня почему-то ещё есть зависимость какое окно активно:
-если на экране письмо Outlook и редактор, то запускай сколько угодно, глюка нет
- если же Word и редактор, то двойной запуск = глюк (причём если при этом не свернуть окно Excel, глюка не будет)
Изменено: AlexGor - 25.03.2024 15:51:37
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
sokol92,Запуск с кнопки описал ранее в #37
Цитата
AlexGor написал:
4 + Запуск с кнопки: проблемы второго запуска не наблюдаются, но запуск с кнопки мне и не нужен, просто проверял.
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
ZVI, у меня выключен журнал буфера обмена. Да и зачем его нагружать если глюк итак появляется если убрать из TEST
Код
With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
 .SetText ""
 .PutInClipboard
End With
и сделать в точнасти как написал ранее:
Цитата
AlexGor написал:
Закрыл все файлы, открыл Excel с кодом, свернул файл, редактор VBA активен, открыл Word, два раза подряд запустил код, при попытке вставить глюк.
Изменено: AlexGor - 25.03.2024 15:31:33
VBA Часть текста "полужирный" в буфер обмена, из переменной, Скопировать текст в буфер обмена, при этом его часть сделать "полужирной"
 
Цитата
sokol92 написал:
лучше все тестировать при закрытом редакторе
так я код запускаю клавишей "Run Sub" из редактора.
Страницы: 1 2 3 4 5 6 7 След.
Наверх