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

Вход

Регистрация

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

 

= Мир MS Excel/Разложение числа на множители - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Разложение числа на множители (Макросы/Sub)
Разложение числа на множители
Zvuk Дата: Понедельник, 12.06.2017, 12:54 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Необходим макрос, вставляющий рядом с ячейкой, содержащей число, столбец с записью разложения этого числа на простые множители. Я вывожу разложение на множители в MsgBox,а вот как сделать именно так,как в задании написано,ума не приложу. Перелопатил много примеров,но так ничего и не нашел нужного. Помогите,пожалуйста,кто чем сможет.
Файл с моим вариантом прилагается!
К сообщению приложен файл: __.xlsm(13Kb)
 
Ответить
СообщениеНеобходим макрос, вставляющий рядом с ячейкой, содержащей число, столбец с записью разложения этого числа на простые множители. Я вывожу разложение на множители в MsgBox,а вот как сделать именно так,как в задании написано,ума не приложу. Перелопатил много примеров,но так ничего и не нашел нужного. Помогите,пожалуйста,кто чем сможет.
Файл с моим вариантом прилагается!

Автор - Zvuk
Дата добавления - 12.06.2017 в 12:54
RAN Дата: Понедельник, 12.06.2017, 13:14 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4602
Репутация: 925 ±
Замечаний: 0% ±

2010
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a As Integer, chislo As Integer, i As Integer, del As String
If Target.Address = "$A$1" Then
chislo = Target.Value
i = 2
a = chislo
While chislo > 1
While chislo Mod i = 0
del = del & i & " "
chislo = chislo / i
Wend
i = i + 1
Wend
Target.Next.Resize(UBound(Split(del)) + 1) = Application.Transpose(Split(del))
'MsgBox (a & " = " & del)
End If
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a As Integer, chislo As Integer, i As Integer, del As String
If Target.Address = "$A$1" Then
chislo = Target.Value
i = 2
a = chislo
While chislo > 1
While chislo Mod i = 0
del = del & i & " "
chislo = chislo / i
Wend
i = i + 1
Wend
Target.Next.Resize(UBound(Split(del)) + 1) = Application.Transpose(Split(del))
'MsgBox (a & " = " & del)
End If
End Sub
[/vba]

Автор - RAN
Дата добавления - 12.06.2017 в 13:14
Gustav Дата: Понедельник, 12.06.2017, 13:20 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1459
Репутация: 556 ±
Замечаний: 0% ±

начинал с Excel 4.0...
Можно оформить как пользовательскую функцию и в соседнюю ячейку ее, например, справа:
[vba]
Код
Function UDF_MNOJITELI(chislo)
    Dim i As Integer, del As String
    i = 2
    While chislo > 1
        While chislo Mod i = 0
            del = del & "*" & i
            chislo = chislo / i
        Wend
        i = i + 1
    Wend
    UDF_MNOJITELI = Mid(del, 2)
End Function
[/vba]


Мой tip box - яд 41001663842605

Сообщение отредактировал Gustav - Понедельник, 12.06.2017, 13:34
 
Ответить
СообщениеМожно оформить как пользовательскую функцию и в соседнюю ячейку ее, например, справа:
[vba]
Код
Function UDF_MNOJITELI(chislo)
    Dim i As Integer, del As String
    i = 2
    While chislo > 1
        While chislo Mod i = 0
            del = del & "*" & i
            chislo = chislo / i
        Wend
        i = i + 1
    Wend
    UDF_MNOJITELI = Mid(del, 2)
End Function
[/vba]

Автор - Gustav
Дата добавления - 12.06.2017 в 13:20
Zvuk Дата: Понедельник, 12.06.2017, 14:43 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
RAN, А можно ли сделать так,чтобы можно было вводить число не только в A1,но и в другие ячейки?Допустим в B1 или C1?
 
Ответить
СообщениеRAN, А можно ли сделать так,чтобы можно было вводить число не только в A1,но и в другие ячейки?Допустим в B1 или C1?

Автор - Zvuk
Дата добавления - 12.06.2017 в 14:43
RAN Дата: Понедельник, 12.06.2017, 15:02 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4602
Репутация: 925 ±
Замечаний: 0% ±

2010
Я разьве запрещал?


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЯ разьве запрещал?

Автор - RAN
Дата добавления - 12.06.2017 в 15:02
Zvuk Дата: Понедельник, 12.06.2017, 15:39 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
RAN, Спасибо вам большое! Разобрался во всем.Сделал,так: если я ввожу в любую ячейку число,то оно разлаживается.


Сообщение отредактировал Zvuk - Понедельник, 12.06.2017, 15:40
 
Ответить
СообщениеRAN, Спасибо вам большое! Разобрался во всем.Сделал,так: если я ввожу в любую ячейку число,то оно разлаживается.

Автор - Zvuk
Дата добавления - 12.06.2017 в 15:39
RAN Дата: Понедельник, 12.06.2017, 16:07 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4602
Репутация: 925 ±
Замечаний: 0% ±

2010
великая и могучая русская языка!
Цитата
разлаживаться — разваливаться, приходить в расстройство, трещать по швам, трещать по всем швам, идти вкривь и вкось, идти кувырком, расползаться по швам, портиться, повреждаться, расползаться, расстраиваться, разрушаться Словарь русских синонимов.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщениевеликая и могучая русская языка!
Цитата
разлаживаться — разваливаться, приходить в расстройство, трещать по швам, трещать по всем швам, идти вкривь и вкось, идти кувырком, расползаться по швам, портиться, повреждаться, расползаться, расстраиваться, разрушаться Словарь русских синонимов.

Автор - RAN
Дата добавления - 12.06.2017 в 16:07
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Разложение числа на множители (Макросы/Sub)
Страница 1 из 11
Поиск:

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