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

Вход

Регистрация

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

 

= Мир MS Excel/сумма 2-х чисел из одной ячейки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » сумма 2-х чисел из одной ячейки (Макросы/Sub)
сумма 2-х чисел из одной ячейки
Clara Дата: Понедельник, 11.08.2014, 15:05 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Ребят, срочно нужен макрос.
Допустим в одной ячейке два числа через запятую, нужно сделать так, чтобы при воспроизведении макроса в соседней ячейке появилась сумма этих чисел.
Выручите пожалуйста :(
 
Ответить
СообщениеРебят, срочно нужен макрос.
Допустим в одной ячейке два числа через запятую, нужно сделать так, чтобы при воспроизведении макроса в соседней ячейке появилась сумма этих чисел.
Выручите пожалуйста :(

Автор - Clara
Дата добавления - 11.08.2014 в 15:05
wild_pig Дата: Понедельник, 11.08.2014, 16:00 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
можно так
[vba]
Код
sp = Split(ActiveCell.Value, ",")     
If UBound(sp) > 0 Then ActiveCell.Offset(0, 1) = Val(sp(0)) + Val(sp(1))
[/vba]
 
Ответить
Сообщениеможно так
[vba]
Код
sp = Split(ActiveCell.Value, ",")     
If UBound(sp) > 0 Then ActiveCell.Offset(0, 1) = Val(sp(0)) + Val(sp(1))
[/vba]

Автор - wild_pig
Дата добавления - 11.08.2014 в 16:00
_Boroda_ Дата: Понедельник, 11.08.2014, 16:06 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
UDF
[vba]
Код
Function ss(a)
     ss = Evaluate(Replace(a, ",", "+"))
End Function
[/vba]
К сообщению приложен файл: 878787.xls (28.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеUDF
[vba]
Код
Function ss(a)
     ss = Evaluate(Replace(a, ",", "+"))
End Function
[/vba]

Автор - _Boroda_
Дата добавления - 11.08.2014 в 16:06
Michael_S Дата: Понедельник, 11.08.2014, 16:48 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Допустим в одной ячейке два числа через запятую

...у меня это всегда будет одно число... да и у большинства, на русском екселе - тоже.
 
Ответить
Сообщение
Допустим в одной ячейке два числа через запятую

...у меня это всегда будет одно число... да и у большинства, на русском екселе - тоже.

Автор - Michael_S
Дата добавления - 11.08.2014 в 16:48
tvitaly1 Дата: Четверг, 04.09.2014, 01:44 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003, Excel 2010
Function sums(s As String)
Dim i As Long
i = InStr(s, ",")
sums = Val(Mid(s, 1, i)) + Val(Mid(s, i + 1))
End Function


Сообщение отредактировал tvitaly1 - Четверг, 04.09.2014, 01:54
 
Ответить
СообщениеFunction sums(s As String)
Dim i As Long
i = InStr(s, ",")
sums = Val(Mid(s, 1, i)) + Val(Mid(s, i + 1))
End Function

Автор - tvitaly1
Дата добавления - 04.09.2014 в 01:44
PowerBoy Дата: Четверг, 04.09.2014, 07:29 | Сообщение № 6
Группа: Проверенные
Ранг: Участник
Сообщений: 100
Репутация: 31 ±
Замечаний: 0% ±

2003
[vba]
Код


=AtREGEX("1,2";"\d+";-2)

Public Function ATREGEX(ByRef text As Variant, _
                         ByRef pattern As Variant, _
                         Optional ByVal num_submatch As Long = -10, _
                         Optional ByRef new_text As Variant = "", _
                         Optional ByVal is_ignoreCase As Boolean = True, _
                         Optional ByVal is_global As Boolean = True) As Variant

Dim objRegex
Dim colMatch
Dim sMatchString As String
Dim sSumMatch As Double
Dim i As Integer

On Error GoTo err_

ATREGEX = ""

Set objRegex = CreateObject("vbscript.regexp")

With objRegex
     .Global = is_global
     .IgnoreCase = is_ignoreCase
     .pattern = pattern
End With

If num_submatch >= -9 Then
     Set colMatch = objRegex.Execute(text)
      
     If num_submatch = -1 Then
         ATREGEX = colMatch.Count
         Exit Function
     End If
      
     If num_submatch = -2 Then
         sSumMatch = 0
         For i = 0 To colMatch.Count - 1
             sSumMatch = sSumMatch + CDbl(colMatch(i).Value)
         Next
         ATREGEX = sSumMatch
         Exit Function
     End If
      
     If colMatch.Count = 0 Then
         ATREGEX = ""
     Else
         If num_submatch = 0 Then
             sMatchString = ""
             For i = 0 To colMatch.Count - 1
                 sMatchString = sMatchString + CStr(colMatch(i).Value) + ","
             Next
             ATREGEX = Left(sMatchString, Len(sMatchString) - 1)
         Else
             ATREGEX = colMatch(num_submatch - 1)
         End If
     End If
Else
     ATREGEX = objRegex.Replace(text, new_text)
End If

err_:
End Function

[/vba]


Excel + SQL = ActiveTables (http://vk.com/ExcelSQL)
 
Ответить
Сообщение[vba]
Код


=AtREGEX("1,2";"\d+";-2)

Public Function ATREGEX(ByRef text As Variant, _
                         ByRef pattern As Variant, _
                         Optional ByVal num_submatch As Long = -10, _
                         Optional ByRef new_text As Variant = "", _
                         Optional ByVal is_ignoreCase As Boolean = True, _
                         Optional ByVal is_global As Boolean = True) As Variant

Dim objRegex
Dim colMatch
Dim sMatchString As String
Dim sSumMatch As Double
Dim i As Integer

On Error GoTo err_

ATREGEX = ""

Set objRegex = CreateObject("vbscript.regexp")

With objRegex
     .Global = is_global
     .IgnoreCase = is_ignoreCase
     .pattern = pattern
End With

If num_submatch >= -9 Then
     Set colMatch = objRegex.Execute(text)
      
     If num_submatch = -1 Then
         ATREGEX = colMatch.Count
         Exit Function
     End If
      
     If num_submatch = -2 Then
         sSumMatch = 0
         For i = 0 To colMatch.Count - 1
             sSumMatch = sSumMatch + CDbl(colMatch(i).Value)
         Next
         ATREGEX = sSumMatch
         Exit Function
     End If
      
     If colMatch.Count = 0 Then
         ATREGEX = ""
     Else
         If num_submatch = 0 Then
             sMatchString = ""
             For i = 0 To colMatch.Count - 1
                 sMatchString = sMatchString + CStr(colMatch(i).Value) + ","
             Next
             ATREGEX = Left(sMatchString, Len(sMatchString) - 1)
         Else
             ATREGEX = colMatch(num_submatch - 1)
         End If
     End If
Else
     ATREGEX = objRegex.Replace(text, new_text)
End If

err_:
End Function

[/vba]

Автор - PowerBoy
Дата добавления - 04.09.2014 в 07:29
Мир MS Excel » Вопросы и решения » Вопросы по VBA » сумма 2-х чисел из одной ячейки (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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