Я новичок в VBA, но немного работал с Excel.Я создал формулу, которая делает именно то, что мне нужно: найти N-е до последнего слова (в основном, 2-е или 3-е до последнего) в ячейке.Я думаю, что моя главная проблема заключается в том, как применить формулу к диапазону ячеек без перезаписи ячейки и как использовать формулы Excel в VBA.Формула Excel, которую я использую, выглядит следующим образом:
=TRIM(LEFT(RIGHT(" "&SUBSTITUTE(TRIM(A1)," ",REPT(" ",60)),180),60))
Возможно, это не самый красноречивый способ, но в Excel он работает довольно хорошо.Изменение числа от 180 до 60 даст последнее слово, от 120 второе до последнего и так далее.Но в VBA он дает 1-ю синтаксическую ошибку, и когда я запускаю его без аргументов и только с TRIM (A1), он перезаписывает ячейку.Код, который я использую, выглядит следующим образом (для проверки используется только A1):
reportsheet.Range("A1").Formula = "=TRIM(LEFT(RIGHT(" " & SUBSTITUTE(TRIM(A1)," " ,REPT(" ",60)),180),60))"
Мой макрос выполняет поиск и извлечение определенных данных из Sheet1 в Sheet2.Теперь я хотел бы применить эту (или аналогичную) формулу к данным, которые он извлекает для Sheet2.Я пробовал много разных вещей, от использования собственной обрезки VBA до создания полностью настраиваемой функции.Кажется, ничего из этого не работает, и я думаю, что это связано с неправильным пониманием того, как формулы Excel и VBA играют вместе.
Кроме того, я пытаюсь найти способ найти единственные числа в ячейке и обрезать их.все остальное.Любая помощь в этом также приветствуется.
РЕДАКТИРОВАТЬ: Извините, ребята, я допустил ошибку в коде, который я предоставил, он должен был ссылаться на A1 в обоих случаях.