Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
stampidu
0 / 0 / 0
Регистрация: 05.10.2009
Сообщений: 13
#1

Вывести данные из диапазона ячеек на экран

25.05.2015, 12:40. Просмотров 1396. Ответов 20
Метки нет (Все метки)

Подскажите как с помощью процедуры можно вывести данные из диапазона ячеек на экран?
Есть данные в двух столбцах. Нужно вывести их на экран при выполнении макроса эти данные в msgbox.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2015, 12:40
Ответы с готовыми решениями:

Записать в массив данные из диапазона ячеек
Всем привет. Не получается разобраться с массивом! Необходимо залить в массив...

В одномерный массив записать данные из диапазона ячеек
В одномерный массив записать данные из диапазона ячеек, заключенных между двумя...

Запрос внешних данных через sql использовав данные из диапазона ячеек Excel
Доброго всем... Не нашёл конкретного решения на форуме, решил создать темку....

Как вывести в label рандомное значение из диапазона ячеек?
Здравствуйте! Ситуация такая, что на форме есть кнопка которая должна...

Вывести значения ячеек из одного диапазона которых нет в другом диапазоне
Друзья помогите! Есть диапазон №1 из 4-х строк 1 столбца с текстовыми...

20
Surrogate
Ушел с CyberForum совсем!
868 / 177 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
25.05.2015, 12:46 #2
в каком формате это должно выводится в мессаджбокс ?
0
stampidu
0 / 0 / 0
Регистрация: 05.10.2009
Сообщений: 13
25.05.2015, 12:55  [ТС] #3
В две колонки. У меня в первом столбце идет номер товара, во втором столбце напротив номера товара указано количество. Нужно чтобы так же и выводились данные, товар и напротив его количество.
0
Surrogate
Ушел с CyberForum совсем!
868 / 177 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
25.05.2015, 13:20 #4
даю наводку.
1.объявляете переменную типа String
2. создаете цикл с нужным количеством строк
этим циклом собираете значение переменной из п. 1
3. выводите на мессаджбокс значение переменной

Добавлено через 22 секунды
операторы цикла проходили ?
0
stampidu
0 / 0 / 0
Регистрация: 05.10.2009
Сообщений: 13
25.05.2015, 15:01  [ТС] #5
Да я сам сижу изучаю vba. По работе понадобилось. Спасибо за подсказку, попробую почитать в интернете про операторы циклы.

Добавлено через 1 час 30 минут
Что-то голову уже сломал. Создал цикл который ищет строки с данными. Как теперь их собрать в значение переменной?
0
Surrogate
Ушел с CyberForum совсем!
868 / 177 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
25.05.2015, 15:09 #6
Цитата Сообщение от stampidu Посмотреть сообщение
Создал цикл который ищет строки с данными
в студию©
0
stampidu
0 / 0 / 0
Регистрация: 05.10.2009
Сообщений: 13
25.05.2015, 15:14  [ТС] #7
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub vivod()
Dim z As String
z = i
For i = 1 To 500
   If Cells(i, 7) > 0 And Cells(i, 8) > 0 Then
  MsgBox z, vbOKCancel, "Подсчет итогов."
   End If
   Next
  
End Sub
Что еще нужно дописать?
0
Surrogate
Ушел с CyberForum совсем!
868 / 177 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
25.05.2015, 15:17 #8
Цитата Сообщение от stampidu Посмотреть сообщение
For i = 1 To 500
оооо ! это вам что хочется 500 раз подряд увидеть сообщения в мессаджбоксе от 1 до 500 ?

Добавлено через 19 секунд
0
stampidu
0 / 0 / 0
Регистрация: 05.10.2009
Сообщений: 13
25.05.2015, 15:25  [ТС] #9
Эээ, нет. это я сделал перебор строчек. от 1 до 500. А вывестись должны данные в одном окне.

Добавлено через 3 минуты
У меня данные в двух столбцах в G и H. Строк примерно около 500. Вот собственно и хочу все данные вывести в одном msgbox.
0
Vlad999
2769 / 1699 / 500
Регистрация: 02.11.2012
Сообщений: 4,235
25.05.2015, 15:27 #10
так
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub vivod()
Dim z() As String, n%, i%
n = 1
For i = 1 To 500
If Cells(i, 7) > 0 And Cells(i, 8) > 0 Then
ReDim Preserve z(1 To n)
z(n) = Cells(i, 7) & " " & Chr(166) & " " & Cells(i, 8)
n = n + 1
End If
Next
MsgBox Join(z, Chr(10)), vbOKCancel, "Подсчет итогов."
End Sub
0
Surrogate
Ушел с CyberForum совсем!
868 / 177 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
25.05.2015, 15:44 #11
Цитата Сообщение от stampidu Посмотреть сообщение
Вот собственно и хочу все данные вывести в одном msgbox.
Vlad999, единственное я сомневаюсь, что в мессаджбокс 500 строк можно вывести !
0
stampidu
0 / 0 / 0
Регистрация: 05.10.2009
Сообщений: 13
25.05.2015, 15:51  [ТС] #12
Спасибо! Все Ок.
0
Vlad999
2769 / 1699 / 500
Регистрация: 02.11.2012
Сообщений: 4,235
25.05.2015, 16:12 #13
Surrogate, вы правы, если все ячейки заполнены точно не выдаст, а если из всего диапазона только строк 20 то может. Суть была показать как это делается.
0
Surrogate
Ушел с CyberForum совсем!
868 / 177 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
25.05.2015, 16:18 #14
Vlad999, ну раз у топик стартера
Цитата Сообщение от stampidu Посмотреть сообщение
Спасибо! Все Ок.
хорошо
0
Hugo121
6278 / 2381 / 401
Регистрация: 19.10.2012
Сообщений: 7,032
25.05.2015, 17:53 #15
Выводите в листбокс или текстбокс - там можно промотать вниз то, что сразу не видно.
Или можно создать новый файл и выгрузить результат в него - что проще сделать в коде. И затем результат можно сохранить, если нужно.
0
forof
0 / 0 / 0
Регистрация: 05.06.2015
Сообщений: 7
05.06.2015, 13:53 #16
Приветствую. Набиваю шишки vba с элементарными ошибками. Вопрос похожий, только код без массива(возможно нужен). Есть набор данных в таблице 10 х 10. Нужно в каждой строке найти максимум и итогом вывести этот список в msgbox. Дополнительно сделал, что в конце каждой строки 11 ячейка как раз имеет значение максимума.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub maxval()
    Dim a, x, y As Integer
    x = 1
    y = 1
        For x = 1 To 10
            a = Cells(x, y).Value
                For y = 1 To 10
                    If a < Cells(x, y).Value Then a = Cells(x, y).Value
                    Next y
                    Cells(x, 11).Value = a
        Next x
End Sub
Понимаю, что вопрос, скорее всего, элементарный, но в каком виде прописать строку с msgbox?
Спасибо.
0
Аксима
5809 / 1259 / 187
Регистрация: 12.12.2012
Сообщений: 984
05.06.2015, 14:25 #17
Здравствуйте, forof,
Возможно, так:

Visual Basic
1
MsgBox Join(Application.Transpose(Range("K1:K10")))
Здесь Range("K1:K10") - диапазон, где прописаны максимумы.
Application.Transpose превращает двухмерный массив в одномерный (диапазон листа Excel считается двухмерным массивом).
Join - создает строку из элементов одномерного массива, разделяя их пробелами (можно указать и другой разделитель).

С уважением,
Аксима
1
forof
0 / 0 / 0
Регистрация: 05.06.2015
Сообщений: 7
05.06.2015, 14:27 #18
Спасибо.
0
Vlad999
2769 / 1699 / 500
Регистрация: 02.11.2012
Сообщений: 4,235
05.06.2015, 14:36 #19
forof, 3 и 4 строки в коде лишние. т.к. тоже самое в 5 и 6 строках.
1
forof
0 / 0 / 0
Регистрация: 05.06.2015
Сообщений: 7
05.06.2015, 14:55 #20
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub maxval()
    Dim a, x, y As Integer
        For x = 1 To 10
            a = Cells(x, y).Value
                For y = 1 To 10
                    If a < Cells(x, y).Value Then a = Cells(x, y).Value
                    Next y
                    Cells(x, 11).Value = a
        Next x
        MsgBox Join(Application.Transpose(Range("K1:K10")))
End Sub
run-time error почему то. По началу работало. Смотрю и не вижу.
0
05.06.2015, 14:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2015, 14:55

На панели инструментов в TextBox "Сумма" вывести сумму значений диапазона ячеек
Можно ли при переходе на определенный лист в макросе Worksheet_Activate...

Необходимо, чтобы в ряде ячеек содержались данные из других ячеек
Только не смейтесь. У меня не получается создать макрос для такой простой...

Выбрать данные из разных (конкретных) ячеек листа, произвести замену данных ячеек
Что нужно от макроса: выбрать данные из разных (конкретных) ячеек листа,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru