2015-08-14 3 views
0

У меня есть этот макрос:Если ошибка оператор =

Sub fixComma() 
' 
' fixComma Macro 
' 
' 
' If (Selection.Start != Selection.End) Then 
    Selection.Find.ClearFormatting 
    Selection.Find.Replacement.ClearFormatting 
    Selection.Find.Replacement.LanguageID = wdEnglishUS 
    With Selection.Find 
     .Text = "([0-9]).([0-9])" 
     .Replacement.Text = "\1,\2" 
     .Forward = True 
     .Wrap = wdFindAsk 
     .Format = True 
     .MatchCase = False 
     .MatchWholeWord = False 
     .MatchKashida = False 
     .MatchDiacritics = False 
     .MatchAlefHamza = False 
     .MatchControl = False 
     .MatchByte = False 
     .MatchAllWordForms = False 
     .MatchSoundsLike = False 
     .MatchWildcards = True 
    End With 

    Selection.Find.Execute Replace:=wdReplaceAll 
    ' Else 
    ' MsgBox "Nothing is selected, Macro terminated" 
    ' End If 
End Sub 

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

Compile Error: 
type declaration character does not match declared data type 

Макрос был записан и я добавил, если чтобы пользователь не применял его, не выбирая текст.

ответ

3

Вы вводите в заблуждение синтаксис VBA с другим языком, например, javascript? VBA использует <> как не равный оператору. != используется javascript и некоторыми другими языками языка C.

If Selection.Start <> Selection.End Then 
+0

Спасибо, теперь это работает, но не так, как я хочу. он заменяет во всех, а не только выбранный текст, какие-либо идеи? Извините, у меня нет опыта работы с VBA –

+1

Извините, я не так хорошо разбираюсь в макросах Word, как Excel. Я попытался запустить ваш код и даже записал собственную версию в Word, но я не могу заставить его остановиться с помощью Selection и не продолжить работу с остальной частью документа. – Jeeped

+0

Не беспокойтесь, спасибо за помощь. Я отправлю еще один вопрос :) –

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