Для перевода большой книги, где много листов, и они представляют собой небольшой текст вместе с большой цифровой таблицей (до несколько тысяч ячеек в каждой и где выше, ниже и сбоку цифр есть еще и другой текст) я использую любезно написанный владельцем сайта макрос перевода:
Sub Translate()
Dim cell1, cell2 As Range
Dim i, Langs As Long
Langs = 2 'количество языков перевода (включая русский)
For Each cell1 In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants)
For Each cell2 In Worksheets("Dict").Cells.SpecialCells(xlCellTypeConstants)
If cell1.Value = cell2.Value Then
i = cell2.Column
If i = Langs Then i = 1 Else i = i + 1
cell1.Value = Worksheets("Dict").Cells(cell2.Row, i).Value
GoTo 1
End If
Next cell2
1: Next cell1
End Sub
Проблема заключается в том, что макрос переводит листы до 10 минут каждый (словарь при этом имеет около 1000 строк). Может это потому, что макрос пытается перевести цифры (а их, как я уже написал, в каждом листе - по две-три тысячи, получается, цифры дают несколько миллионов ненужных переборов). Можно ли как-то сделать, чтобы макрос не перебирал ячейки с цифровыми значениями и за счет этого ускорить процесс перевода? Помогите, пожалуйста.
Sub Translate()
Dim cell1, cell2 As Range
Dim i, Langs As Long
Langs = 2 'количество языков перевода (включая русский)
For Each cell1 In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants)
For Each cell2 In Worksheets("Dict").Cells.SpecialCells(xlCellTypeConstants)
If cell1.Value = cell2.Value Then
i = cell2.Column
If i = Langs Then i = 1 Else i = i + 1
cell1.Value = Worksheets("Dict").Cells(cell2.Row, i).Value
GoTo 1
End If
Next cell2
1: Next cell1
End Sub
Проблема заключается в том, что макрос переводит листы до 10 минут каждый (словарь при этом имеет около 1000 строк). Может это потому, что макрос пытается перевести цифры (а их, как я уже написал, в каждом листе - по две-три тысячи, получается, цифры дают несколько миллионов ненужных переборов). Можно ли как-то сделать, чтобы макрос не перебирал ячейки с цифровыми значениями и за счет этого ускорить процесс перевода? Помогите, пожалуйста.