Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Попробуйте так:
Скрытый текст
Код: Выделить весь код
Option Explicit

Sub Sample()
    Dim objCell As Cell
    
    If Selection.Tables.Count = 1 Then
        With CreateObject("VBScript.RegExp")
            .Pattern = "^(\d+/\d+)(\()\d+\%(\)).*"
            
            For Each objCell In Selection.Tables.Item(1).Range.Cells
                If .Test(objCell.Range.Text) Then
                    With .Execute(objCell.Range.Text).Item(0).Submatches
                        objCell.Range.Text = .Item(0) & .Item(1) & Format(CDbl(Split(.Item(0), "/")(0)) / CDbl(Split(.Item(0), "/")(1)), "Percent") & .Item(2)
                    End With
                End If
            Next objCell
        End With
    Else
        MsgBox "Please select table", vbInformation + vbOKOnly, "Need a table in selection"
    End If
End Sub

Надеюсь, у Вас не будет нуля в знаменателях, я не стал делать такую проверку.

P.S. Всю таблицу, разумеется, выделять не обязательно. Необходимо и достаточно поместить внутрь неё курсор ввода.

Последний раз редактировалось Iska, 07-09-2016 в 15:15. Причина: Добавил постскриптум.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:05, 07-09-2016 | #4