Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Удаление содержимого яч и умножение на число из содержимого - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление содержимого яч и умножение на число из содержимого (Макросы/Sub)
Удаление содержимого яч и умножение на число из содержимого
CHEVRYACHOK Дата: Суббота, 29.10.2016, 07:27 | Сообщение № 21
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 109
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
krosav4ig,
была одна ошибка, но по моей вине.
Я не удалил объединенные ячейки.
Единственное, что заметил, почему-то заменяет точки на запятые,
но это не существенно. Еще раз спасибо!
nilem, ваш отработал и с объединенными ячейками.
 
Ответить
Сообщениеkrosav4ig,
была одна ошибка, но по моей вине.
Я не удалил объединенные ячейки.
Единственное, что заметил, почему-то заменяет точки на запятые,
но это не существенно. Еще раз спасибо!
nilem, ваш отработал и с объединенными ячейками.

Автор - CHEVRYACHOK
Дата добавления - 29.10.2016 в 07:27
krosav4ig Дата: Суббота, 29.10.2016, 21:58 | Сообщение № 22
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
объединенные ячейки

это зло
заменяет точки на запятые

а это ужо я немного накосячил, в строке[vba]
Код
.Formula = Parent.Substitute(arr, ".", Parent.DecimalSeparator)
[/vba] сделал замену на десятичный резделитель
[vba]
Код
Sub dd()
10  On Error GoTo Er
    Dim arr As Variant, arr1 As Variant, i&, s$
20  With [A1].CurrentRegion
30      With Intersect(.Columns("D").Offset(5), .EntireRow)
40          arr = .Value: arr1 = .Offset(, 1).Formula
50          With CreateObject("vbscript.regexp")
60              .Pattern = "([0-9]+)?(\s?\S+).*"
70              For i = 1 To UBound(arr)
80                  If .test(arr(i, 1)) Then
90                      s = "=trim(""$2 ""& 0" & arr1(i, 1) & "*text(0$1,""0;;1""))"
100                     arr(i, 1) = Evaluate(.Replace(arr(i, 1), s))
110                 Else: arr(i, 1) = " "
120                 End If
130             Next
140         End With
150         Parent.ScreenUpdating = False: Parent.DisplayAlerts = False
160         .Value = Parent.ReplaceB(arr, Parent.Search(" ", arr), 999, "")
170         .Offset(, 1).Formula = Parent.ReplaceB(arr, 1, Parent.Search(" ", arr), "")
180         Parent.DisplayAlerts = True: Parent.ScreenUpdating = True
190     End With
200   End With
210 Exit Sub
Er:
220 Parent.DisplayAlerts = True: Parent.ScreenUpdating = True
230 With Parent.VBE.MainWindow.LinkedWindows
240     .Add Parent.VBE.Windows("Immediate")
250     .Add Parent.VBE.Windows("Locals")
260 End With
    'Application.VBE.Windows("Immediate").Visible = True
    'Application.VBE.Windows("Locals").Visible = True
270 Debug.Print "Ошибка " & Err.Number & " (" & Err.Description & ") на строке " & Erl
280 Stop
290 Err.Clear
300 Resume Next
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 29.10.2016, 22:04
 
Ответить
Сообщение
объединенные ячейки

это зло
заменяет точки на запятые

а это ужо я немного накосячил, в строке[vba]
Код
.Formula = Parent.Substitute(arr, ".", Parent.DecimalSeparator)
[/vba] сделал замену на десятичный резделитель
[vba]
Код
Sub dd()
10  On Error GoTo Er
    Dim arr As Variant, arr1 As Variant, i&, s$
20  With [A1].CurrentRegion
30      With Intersect(.Columns("D").Offset(5), .EntireRow)
40          arr = .Value: arr1 = .Offset(, 1).Formula
50          With CreateObject("vbscript.regexp")
60              .Pattern = "([0-9]+)?(\s?\S+).*"
70              For i = 1 To UBound(arr)
80                  If .test(arr(i, 1)) Then
90                      s = "=trim(""$2 ""& 0" & arr1(i, 1) & "*text(0$1,""0;;1""))"
100                     arr(i, 1) = Evaluate(.Replace(arr(i, 1), s))
110                 Else: arr(i, 1) = " "
120                 End If
130             Next
140         End With
150         Parent.ScreenUpdating = False: Parent.DisplayAlerts = False
160         .Value = Parent.ReplaceB(arr, Parent.Search(" ", arr), 999, "")
170         .Offset(, 1).Formula = Parent.ReplaceB(arr, 1, Parent.Search(" ", arr), "")
180         Parent.DisplayAlerts = True: Parent.ScreenUpdating = True
190     End With
200   End With
210 Exit Sub
Er:
220 Parent.DisplayAlerts = True: Parent.ScreenUpdating = True
230 With Parent.VBE.MainWindow.LinkedWindows
240     .Add Parent.VBE.Windows("Immediate")
250     .Add Parent.VBE.Windows("Locals")
260 End With
    'Application.VBE.Windows("Immediate").Visible = True
    'Application.VBE.Windows("Locals").Visible = True
270 Debug.Print "Ошибка " & Err.Number & " (" & Err.Description & ") на строке " & Erl
280 Stop
290 Err.Clear
300 Resume Next
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 29.10.2016 в 21:58
CHEVRYACHOK Дата: Воскресенье, 30.10.2016, 12:08 | Сообщение № 23
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 109
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
krosav4ig, так все замечательно, огромное спасибо! hands
 
Ответить
Сообщениеkrosav4ig, так все замечательно, огромное спасибо! hands

Автор - CHEVRYACHOK
Дата добавления - 30.10.2016 в 12:08
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление содержимого яч и умножение на число из содержимого (Макросы/Sub)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!