2016-07-13 4 views
1

Я пытаюсь собрать макрос Excel, чтобы устранить длинные серии повторяющихся нажатий клавиш. Я беру текст в виде: "XXXXXXXX XXXXXXXX (XXXX XXXXX XXXXXXX)" И Удаляя бит в конце, что делает его: "XXXXXXXX XXXXXXXX"Excel Macro: выделение и удаление текста

Я с помощью нажатия клавиш: F2, Shift + Ctrl + RtArrow, Shift + Ctrl + RtArrow, Shift + Ctrl + RtArrow, Shift + RtArrow, Backspake, Enter

Я попытался записать эту последовательность нажатий клавиш с помощью функции макроса Excel, но он не работает. Если я запустил записанный макрос в следующей ячейке, содержащий «YYYYYYYYYYYYYYYYYY (YYYY YYYYYY YYYYYYYY)», он не выполняет нажатия клавиш, которые я записал, он просто заменяет содержимое ячейки полученным содержимым ячейки, в которую я записал макрос, «XXXXXXXX XXXXXXXX». код Excel генерироваться был этот, в котором он, кажется, игнорирует команды я выполнил, а просто копирует результат:

Sub DelProcVintage() 
' 
' DelProcVintage Macro 
' 
' Keyboard Shortcut: Ctrl+j 
' 
    ActiveCell.FormulaR1C1 = "XXXXXXXX XXXXXXXX" 
    ActiveCell.Offset(1, 0).Range("A1").Select 
End Sub 

Есть ли способ, чтобы выпустить свою последовательность клавиш через макрос, как я хотел бы делать?

Спасибо, Matt

+0

использование 'SendKeys' [Excel VBA - SendKeys метод] (http://www.contextures.com/excelvbasendkeys.html) – Namkce

+0

Кроме того, когда вы говорите, что вы преобразования' XXXX XXX (XXX XX XXX) 'to' XXXX XXX', вы в основном удаляете все после '('? Если это так, то это может быть лучшим ресурсом для вас [Удалить текст до/после персонажа] (https://www.extendoffice.com/ document/excel/1783-excel-remove-text-before-character.html) – Namkce

+2

'ActiveCell.Value = Trim (Split (ActiveCell.Value," (") (0))' –

ответ

0

Я рекомендую вам взять новую колонку и поставить формулу, как:

=Left('cell',10) 

левая формула режет все, справа после того, как ряд чисел, то если вы хотят, чтобы сделать макрос (пример строки от 1 до 500):

Range("D1:D500").FormulaR1C1 = "(Formula)" 

Затем скопировать значение вставить и удалить оригинал столбец

1

В результате я изменил код, который нашел. Здесь мне около 80%, что экономит много повторяющихся нажатий клавиш. Я изменил этот код, чтобы удалить последние 25 символов строки. Есть несколько бит, которые имеют более или менее 25 символов, но их так мало, их легко заметить и исправить.

Sub delEnd() 
' 
' delEnd Macro 
' 
' Keyboard Shortcut: Ctrl+j 
' 
Dim Rng As Range 
Dim WorkRng As Range 
Dim xChar As String 
On Error Resume Next 
xTitleId = "Macro Options" 
Set WorkRng = Application.Selection 
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address,  Type:=8) 
'xChar = Application.InputBox("String", xTitleId, "", Type:=2) 
For Each Rng In WorkRng 
    xValue = Rng.Value 
    Rng.Value = VBA.Left(xValue, VBA.Len(xValue) - 25) 
'25 characters is the most common length of the text I am removing 
Next 
End Sub 

 Смежные вопросы

  • Нет связанных вопросов^_^