Содержание
- VBA: Запись результатов на другой лист
- Сообщения 6
- 1 Тема от alkhimovmet 2018-09-29 15:57:28
- Тема: VBA: Запись результатов на другой лист
- 2 Ответ от alexii 2018-09-29 16:43:09 (изменено: alexii, 2018-09-29 16:44:01)
- Re: VBA: Запись результатов на другой лист
- 3 Ответ от alkhimovmet 2018-09-30 08:41:06
- Re: VBA: Запись результатов на другой лист
- Информатика_2 семестр / 2-VBA / VBA-Учебные материалы / VBA-2 Ввод-вывод,лин_процессы
- Vba excel вывод данных на лист
VBA: Запись результатов на другой лист
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщения 6
1 Тема от alkhimovmet 2018-09-29 15:57:28
- alkhimovmet
- Участник
- Неактивен
- Рейтинг : [ 0 | 0 ]
Тема: VBA: Запись результатов на другой лист
Добрый день.
У меня имеется макрос, результаты которог выводятся в столбец 1 на том же листе. А что прописать в макросе, чтобы результаты выводились на другой лист?
Вот код макроса:
Надо, чтобы результааты выводились не в первый столбец этого же листа, а на другой лист с именем Лист 2
2 Ответ от alexii 2018-09-29 16:43:09 (изменено: alexii, 2018-09-29 16:44:01)
- alexii
- Разработчик
- Неактивен
Re: VBA: Запись результатов на другой лист
результааты выводились не в первый столбец этого же листа
Результаты у Вас выводятся не на «этот же лист», а на активный рабочий лист, работает лишь потому, что активный рабочий лист у Вас не меняется в процессе.
а на другой лист с именем Лист 2
Видимо, речь про это (не проверялось):
3 Ответ от alkhimovmet 2018-09-30 08:41:06
- alkhimovmet
- Участник
- Неактивен
- Рейтинг : [ 0 | 0 ]
Re: VBA: Запись результатов на другой лист
Написал так и работает, но меня терзают смутные сомнения , что это не совсем так правильно. Может подскажите?
Источник
Информатика_2 семестр / 2-VBA / VBA-Учебные материалы / VBA-2 Ввод-вывод,лин_процессы
ОПЕРАТОРЫ ВВОДА И ВЫВОДА ДАННЫХ.
ЛИНЕЙНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ
ОПЕРАТОР ПРИСВАИВАНИЯ LET
Оператор присваивания служит для вычисления значения выражения и присваивания этого значения переменной. При записи программы оператор Let можно опускать.
[Let] Имя_переменной = Выражение
Следует различать оператор присваивания и алгебраическое равенство. Оператор Y = A + B означает для ЭВМ: сложить содержимое ячеек памяти, отведенных для размещения значений переменных А и В, и поместить результат в ячейку памяти, отведенную для значения переменной Y. В программировании широко используется конструкция оператора присваивания типа I = I + 1. К заданному значению переменной I прибавляется 1, и результат помещается в ту же ячейку, заменив бывшую там информацию на новую. С точки зрения математики равенство i=i+1 не имеет смысла.
При присвоении переменным строковых значений их необходимо заключать в кавычки:
а значения типа Дата/Время заключать в символы # («решетка»):
ОПЕРАТОРЫ ВВОДА ДАННЫХ
Рассмотрим три основных способа ввода данных.
1. Запись значений переменных непосредственно в тексте программы осуществляется с помощью оператора присваивания.
Этот способ используется, если исходные данные не изменяются при нескольких исполнениях программы.
2. Ввод данных из ячеек рабочего листа Excel.
Для этого используется инструкция Сells(i, j), которая в данном случае выступает как функция ввода данных. Формат использования:
где i, j – порядковые номера соответственно строки и столбца (числовые значения!), на пересечении которых находится ячейка, т. е. адрес ячейки.
При этом следует иметь в виду, что данные на листе Excel уже имеются.
Пример: А = Сells(1, 2)
После выполнения этой команды переменной А присвоится значение, которое хранится в ячейке, находящейся в первой строке (первая цифра) и во втором столбце (вторая цифра), т. е. в ячейке B1 электронной таблицы.
3. Ввод данных непосредственно в ходе выполнения программы, т. е. в диалоговом режиме, выполняется с помощью диалогового окна ввода информации, реализуемого функцией InputBox. Основной формат этой функции:
Имя_переменной = InputBox(“Сообщение” [, “Заголовок”] [, “Значение”]).
В ходе работы программы при выполнении данной команды на экране монитора появляется диалоговое окно с указанным Заголовком, содержащее текст Сообщения, а также поле ввода с указанным Значением:
Выполнение программы приостанавливается в ожидании ввода данных с клавиатуры и нажатия одной из кнопок. После ввода информации и нажатия на кнопку ОК переменной присваивается значение типа String (строковый тип данных), содержащее текст, введенный в поле ввода.
Пример: x = InputBox(“Введите x”, “Ввод исходных данных”, “0.15”)
Имя окна можно опустить (при этом местоположение запятых сохраняется):
x = InputBox(«Введите x», , «0.15»)
Функция InputBox используется, когда исходные данные меняются при каждом запуске программы, поэтому обычно значение переменной не задается и применяется простейший вариант записи этой функции:
Пример: d = InputBox(“Введите значение диаметра”)
Если в поле ввода в появившемся диалоговом окне ввести 23, то в переменную d будет записан текст “23”, а не число 23. Текстовая строка “23” представляет собой лишь визуальное отображение числа, но не является числом в буквальном смысле слова, т. е. с ним, как и с любым другим текстом, нельзя производить никаких арифметических действий.
Для преобразования строкового типа данных в числовой тип используется функция Val(Строка), которая возвращает число, содержащееся в Строке, как числовое значение соответствующего типа.
При записи в коде программы
d = Val(InputBox(“Введите значение диаметра”))
и вводе в поле ввода цифр 23 переменной d присвоится число 23.
ОПЕРАТОРЫ ВЫВОДА ДАННЫХ
Рассмотрим три основных способа вывода данных.
1. Вывод в диалоговое окно с помощью команды MsgBox:
MsgBox «Сообщение», , «Заголовок»
В результате выполнения этой команды на экране появляется диалоговое окно Заголовок, содержащее указанный текст Сообщения. Выполнение программы приостанавливается до нажатия пользователем кнопки ОК.
Пример: MsgBox y , , «Результат»
В данном случае в качестве выводимого в окно Результат сообщения задано текущее значение переменной y:
Простейший формат записи оператора MsgBox:
Обычно сообщение включает в себя не только выводимое значение, но и комментарий, который заключается в кавычки. Для слияния нескольких фрагментов в одну строку в операторе вывода их разделяют знаком &.
Пример: MsgBox “Значение диаметра =” & d
В результате на экране появится следующее диалоговое окно:
2. Вывод данных на лист рабочей книги Excel с использованием инструкции Сells(i, j). В этом случае в отличие от ранее рассмотренного она выступает как команда вывода:
В результате этой команды указанное Сообщение помещается в ячейку с адресом, определяемым номером строки i и номером столбца j.
Cells(1, 2) = x ‘Вывод в ячейку B1 текущего значения переменной x
3. Вывод данных в окно отладки Immediate («Немедленно»). Это окно обычно располагается под окном программного кода. Если этого окна нет, то его можно вывести, нажав Ctrl+G или из главного меню VBA View → Immediate Window.
Для вывода в окно отладки применяется метод Print (печать) объекта Debug (отладчик). Формат записи:
Пример: Debug.Print “Значение диаметра =” & d
Как видно из этого примера, команда Debug.Print используется аналогично команде MsgBox.
Пустой (т. е. без Сообщения) метод Debug.Print выводит пустую строку.
Помимо знака & в методе Print возможно использование разделителей списка выводимых данных. При этом знак «;» означает вывод очередного значения непосредственно за предыдущим, знак «,» – переход к началу новой зоны печати (окно отладки делится на 5 вертикальных зон по 14 символов каждая). При вводе знак «;» между элементами выводного списка можно опускать, VBA добавит его автоматически.
Запятая или точка с запятой в конце выводного списка в команде Debug.Print подавляет переход на новую строку (следующий Debug.Print начнет печать в той же строке).
Пример: Debug.Print «Результат y=»; y;
В любом операторе вывода (MsgBox, Cells, Debug.Print) возможен вывод не только готовых результатов, но и одновременный расчет и вывод:
Debug.Print «s = «; s, » k1+k2 = «; k1 + k2
MsgBox «Если диаметр = » & d & «, то радиус = » & d / 2
Для вывода числового значения в заданном формате в операторах вывода MsgBox, Debug.Print вместо имени переменной следует использовать функцию Format с указанием количества десятичных знаков.
Debug.Print z ‘вывод переменной z обычным образом
Debug.Print Format(z, «#0.00«) ‘вывод переменной z с 2-мя десятичными знаками
MsgBox Format(z, «#0.000«) ‘вывод переменной z с 3-мя десятичными знаками
В операторе вывода Cells функцию Format использовать не рекомендуется.
ЛИНЕЙНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ
Простейшими являются программы, реализующие алгоритмы линейного вычислительного процесса. Программа в этом случае содержит операторы ввода данных, присваивания и вывода данных. Операторы записываются последовательно друг за другом в естественном порядке их следования и выполняются только один раз.
Общая структура линейной программы:
Option Explicit ‘Запрет использования необъявленных переменных
‘Ввод исходных данных
Пример_Л1. Составить ГСА и текст программы для вычисления функции:
где x = a∙t 2 + 0.2 , a = 18, t – произвольное.
ГСА Текст программы:
Option Explicit ‘Запрет использования необъявленных переменных
Sub Лин_процесс1() ‘Начало процедуры Лин_процесс1
Const a = 18 ‘Объявление константы a
Dim t As Single ‘Объявление вещественной переменной t
Dim x As Single ‘Объявление вещественной переменной x
Dim y As Single ‘Объявление вещественной переменной y
t = Val(InputBox(«Введите t»)) ‘Ввод значения t
x = a * t ^2 + 0.2 ‘Расчет x
y = (x ^ 2 + Log(x) — (x + 1) ^ 2) / (x * Sin(x)) ‘Расчет y
MsgBox «Результат y=» & y ‘Вывод y в диалоговое окно
End Sub ‘Конец процедуры
Ниже приведено решение того же примера с использованием других способов ввода и вывода данных.
Источник
Vba excel вывод данных на лист
Сделал сам с помощью цикла For . Next
Public Sub Пример12()
Dim Kodklienta As Integer, Stoimost As Integer, Vyplata As Integer
With Worksheets(«Лист4»).Range(«A3»)
kod = Range(.Offset(1, 0), .End(xlDown)).Rows.Count
qwe = 0
For i = 1 To kod
Stoimost = .Offset(i, 1)
Vyplata = .Offset(i, 2)
Dolg = Stoimost — Vyplata
kodkl = .Offset(i, 0)
If Dolg > 1000 Then
qwe = qwe + 1
Worksheets(«Лист5»).Range(«B3»).Off set(qwe, 0) = Dolg
Worksheets(«Лист5»).Range(«A3»).Off set(qwe, 0) = kodkl
End If
Next i
End With
End Sub
Позволю себе небольшой ликбез. Все что я скажу — мое ИМХО.
Система координат (СК).
Существуют два типа СК: абсолютные и относительные.
Относительные СК — это те которые ведет отсчет от каких либо ближайших ориентиров, а изменения координат записываются любим способ описывающим смещением объектов от ориентиров, или раннее описанных объектов. Они удобны для локальных пространств, и как правило применяются для сильно ограниченных объектов (содержащих ограниченное число точек (объектов)). Их преимущество в гибкости, объекты записанные (описанные) в подобных СК без особых проблем и потери точности можно привязать к любым абсолютным СК и связать между собой (если при описании объектов соблюдались ряд правил). Минус в том, что любое изменение влияет на ВЕСЬ объект (зачастую фатально) и как следствие нужно пересчитывать ВСЕ с нулю. Если объект большой (или это огромная цепочка объектов) то подобный пересчет весьма затруднителен, даже с использованием ЭВМ. А так же велика вероятность ошибки, так их очень ТРУДНО отслеживать.
Абсолютные СК — имеет одну единую точку взятую за ноль, а координаты объектов записываются в некой мере смещений от нулевой точки. Это глобальные системы, любая крупная сеть объектов должна иметь абсолютную СК. Минус систем в том, что перевод из одной СК в другую, может быть весьма проблематичен, и иметь в сложных случаях коэффициент не точности. Плюс же в том, что можно создавать единый СК. Что позволяет без каких либо дополнительных расчетов объединять неограниченное количество совершенно разных объектов и информации. Обработка данных становиться более легкой и наглядной, а алгоритмы упрощаются. Появляется понятие — стандарт.
Ты упорно используешь относительную СК «.Offset(i, 1)». Тогда как я стараюсь всегда стараюсь работать в абсолютной СК «cells(1,1)». В первую очередь из-за наглядности кода, поиск ошибок значительно упрощается, система ведет себя предсказуемо, тогда как при относительной СК заранее быть уверенным в результате нельзя — появляются факторы которые ты не контролируешь.
Range(«B3») — относится к абсолютной СК, но следует избегать использования такой адресации, так как подобные вид кода труднее воспринимается человеком, и сложнее поддает модернизации.
Прекрати использовать обращение вида «Worksheets(«Лист5″)». Обращайся к листу в текущей книге по кодовому имени, это даст независимость от пользователя, будет занимать меньше места, что благоприятно скажется на читаемости когда (строки бывают ох какие длинные и мудреные). Упростить модернизацию кода в будущем, да и это проще для восприятия, что так же не мало важно.
Константы вместо цифр.
ВЕЗДЕ где можно следует заменять цифры константами, и описывать их в начале когда. Это сделает код гибче, и позволит вносить изменения без серьезных исправлений самого кода. А так же повысится его читаемость. Например, что ты будешь делать если потребуется выявить клиентов с задолженностью в 2000 или 900 рублей? :))
Имена переменных.
Переменным лучше давать сложные составные имена. Так как простые имена не отображаются всех особенностей содержащейся в переменной информации. Например: «Stoimost» Это стоимость чего? Или «Dolg» — это чей долг (фирмы, партнера, банка или долг по зарплате)?
Переменные следует разбивать на группы, объединяя их по главному общему признаку, при это общий признак должен находиться в начале названия переменной. Например: КлиентСтоимость, КлиентДолг, КлиентТоварКолво, ФирмаДолг, СкладТоварКолво СкладТоварСтоимость и т.п.
Соблюдение этого правили будет особенно полезно, если ты собираешься развивать программу и код. В отдельных случаях удобно отображать в имени переменной ее тип, ставя первым знаком английскую букву — первую букву типа переменной (s, b, d, i и т.п.)
Все описанное я отразил в приведенном выше примере.
Источник
Всем добрый вечер.
Собственно, проблема вот в чем, пользователь вводит количество столбцов и строк массива, после чего сам же вводит значения
Как сделать так, чтобы это выводилось на лист excela?
Visual Basic | ||
|
Заранее благодарю за помощь
Добавлено через 15 минут
Visual Basic | ||
|
Вроде бы добавил это после next i, выводит на лист, но проблема теперь в другом, почему при вводе первых трех значений — например ввожу подряд 1-2-3-4 с матрицей 2х2, он выдает на лист 0 0 0 и 4-ый элемент 1, не понимаю, к сожалению
Лекция
для ЗФ
ОПЕРАТОРЫ ВВОДА
И ВЫВОДА ДАННЫХ.
ЛИНЕЙНЫЕ
ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ
ОПЕРАТОР
ПРИСВАИВАНИЯ LET
Оператор присваивания
служит для вычисления значения выражения
и присваивания этого значения переменной.
При записи программы оператор Let
можно опускать.
Формат оператора:
[Let]
Имя_переменной
= Выражение
Примеры:
A=2.1
SUMMA=X+COS(X)^2
Следует различать
оператор присваивания и алгебраическое
равенство. Оператор Y
= A
+ B
означает для ЭВМ: сложить содержимое
ячеек памяти, отведенных для размещения
значений переменных А и В, и поместить
результат в ячейку памяти, отведенную
для значения переменной Y.
В программировании широко используется
конструкция оператора присваивания
типа I
= I
+ 1. К заданному значению переменной I
прибавляется 1, и результат помещается
в ту же ячейку, заменив бывшую там
информацию на новую. С точки зрения
математики равенство i=i+1
не имеет смысла.
При присвоении
переменным строковых значений их
необходимо заключать в кавычки:
T
= «Параметр 1»,
а значения типа
Дата/Время заключать в символы #
(«решетка»):
D
= #11/29/2008#
ОПЕРАТОРЫ
ВВОДА ДАННЫХ
Рассмотрим три
основных способа ввода данных.
1.
Запись значений переменных непосредственно
в тексте программы
осуществляется с помощью оператора
присваивания.
Имя_переменной
= Выражение
Примеры:
A
= 3
TOK
= 480
Этот способ
используется, если исходные данные не
изменяются
при нескольких исполнениях программы.
2.
Ввод данных из
ячеек рабочего листа Excel.
Для этого используется
инструкция Сells(i, j),
которая в данном случае выступает как
функция ввода данных. Формат использования:
Имя_переменной
=
Сells(i,
j),
где i,
j
– порядковые номера соответственно
строки и столбца (числовые значения!),
на пересечении которых находится ячейка,
т. е. адрес ячейки.
При этом следует
иметь в виду, что данные на листе Excel
уже имеются.
Пример: А
= Сells(1,
2)
После
выполнения этой команды переменной А
присвоится значение, которое хранится
в ячейке, находящейся в первой строке
(первая цифра) и во втором столбце (вторая
цифра), т. е. в ячейке B1
электронной таблицы.
3.
Ввод данных непосредственно в
ходе выполнения программы,
т. е. в диалоговом режиме, выполняется
с помощью диалогового окна ввода
информации, реализуемого функцией
InputBox.
Основной
формат этой функции:
Имя_переменной
= InputBox(“Сообщение”
[, “Заголовок”] [, “Значение”]).
В ходе работы
программы при выполнении данной команды
на экране монитора появляется диалоговое
окно с указанным Заголовком,
содержащее текст Сообщения,
а также поле ввода с указанным Значением:
Выполнение программы
приостанавливается в ожидании ввода
данных с клавиатуры и нажатия одной из
кнопок. После ввода информации и нажатия
на кнопку ОК
переменной присваивается значение типа
String
(строковый тип данных), содержащее текст,
введенный в поле ввода.
Пример:
x
=
InputBox(“Введите
x”,
“Ввод исходных данных”, “0.15”)
Имя окна можно
опустить (при этом местоположение
запятых сохраняется):
x
= InputBox(«Введите
x»,
, «0.15»)
Функция InputBox
используется, когда исходные данные
меняются при
каждом запуске программы,
поэтому обычно значение переменной не
задается и применяется простейший
вариант записи этой функции:
Имя_переменной
=
InputBox(“Сообщение”)
Пример:
d
= InputBox(“Введите
значение диаметра”)
Если в поле ввода
в появившемся диалоговом окне ввести
23, то в переменную d
будет записан текст “23”, а не число 23.
Текстовая строка “23” представляет
собой лишь визуальное отображение
числа, но не является числом в буквальном
смысле слова, т. е. с ним, как и с любым
другим текстом, нельзя производить
никаких арифметических действий.
Для преобразования
строкового типа данных в числовой тип
используется функция
Val(Строка),
которая возвращает число, содержащееся
в Строке,
как числовое значение соответствующего
типа.
При записи в коде
программы
d
= Val(InputBox(“Введите
значение диаметра”))
и вводе в поле
ввода цифр 23 переменной d
присвоится число 23.
ОПЕРАТОРЫ
ВЫВОДА ДАННЫХ
Рассмотрим три
основных способа вывода данных.
1.
Вывод в
диалоговое окно
с помощью команды MsgBox:
MsgBox
«Сообщение», , «Заголовок»
В
результате выполнения этой команды на
экране появляется диалоговое окно
Заголовок,
содержащее указанный текст Сообщения.
Выполнение программы приостанавливается
до нажатия пользователем кнопки ОК.
Пример:
MsgBox y , ,
«Результат»
В данном случае в
качестве выводимого в окно Результат
сообщения задано текущее значение
переменной y:
Простейший формат
записи оператора MsgBox:
MsgBox
«Сообщение»
Обычно сообщение
включает в себя не только выводимое
значение, но и комментарий, который
заключается в кавычки. Для слияния
нескольких фрагментов в одну строку в
операторе вывода их разделяют знаком
&.
Пример: MsgBox
“Значение диаметра =” & d
В результате на
экране появится следующее диалоговое
окно:
2.
Вывод данных на
лист рабочей книги Excel
с использованием инструкции Сells(i,
j).
В этом случае в отличие от ранее
рассмотренного она выступает как команда
вывода:
Cells(i,
j)
=
«Сообщение».
В результате этой
команды указанное Сообщение
помещается в ячейку с адресом, определяемым
номером строки i
и номером столбца j.
Примеры:
Cells(1,
1) = “x=” ‘Вывод
в ячейку A1
текста x=
Cells(1,
2) = x ‘Вывод
в ячейку B1
текущего значения переменной x
3.
Вывод данных в
окно отладки
Immediate
(«Немедленно»). Это окно обычно
располагается под окном программного
кода. Если этого окна нет, то его можно
вывести, нажав Ctrl+G
или из главного меню VBA
View
→ Immediate Window.
Для вывода в окно
отладки применяется метод Print
(печать)
объекта
Debug
(отладчик). Формат записи:
Debug.Print
[«Сообщение»]
Пример:
Debug.Print “Значение диаметра =” & d
Как видно из этого
примера, команда Debug.Print используется
аналогично команде MsgBox.
Пустой (т. е. без
Сообщения)
метод Debug.Print
выводит пустую строку.
Помимо знака &
в методе Print
возможно использование разделителей
списка выводимых данных. При этом знак
«;»
означает вывод очередного значения
непосредственно за предыдущим, знак
«,»
– переход к началу новой зоны печати
(окно отладки делится на 5 вертикальных
зон по 14 символов каждая). При вводе знак
«;»
между
элементами выводного списка можно
опускать, VBA
добавит его автоматически.
Запятая или точка
с запятой в конце выводного списка в
команде Debug.Print
подавляет переход на новую строку
(следующий Debug.Print
начнет печать в той же строке).
Пример:
Debug.Print «Результат y=»;
y;
В любом операторе
вывода
(MsgBox,
Cells,
Debug.Print)
возможен вывод не только готовых
результатов, но и одновременный расчет
и вывод:
Примеры:
Debug.Print
«s = «;
s,
» k1+k2 = «;
k1 + k2
MsgBox
«Если диаметр = » & d & «, то
радиус = » & d / 2
Для вывода числового
значения в заданном формате в операторах
вывода MsgBox,
Debug.Print
вместо имени переменной следует
использовать функцию Format
с указанием количества десятичных
знаков.
Примеры:
Debug.Print
z
‘вывод
переменной z
обычным образом
Debug.Print
Format(z,
«#0.00«)
‘вывод переменной
z
с 2-мя десятичными знаками
MsgBox
Format(z,
«#0.000«)
‘вывод переменной
z
с 3-мя десятичными знаками
В операторе вывода
Cells
функцию Format
использовать не рекомендуется.
ЛИНЕЙНЫЕ
ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ
Простейшими
являются программы, реализующие алгоритмы
линейного вычислительного процесса.
Программа в этом случае содержит
операторы ввода данных, присваивания
и вывода данных. Операторы записываются
последовательно друг
за другом в естественном порядке их
следования и выполняются только один
раз.
Общая
структура линейной программы:
Option
Explicit ‘Запрет
использования необъявленных переменных
Sub
Имя_процедуры()
‘Объявление
констант
(Const
…)
‘Объявление
переменных
(Dim
…)
‘Тело процедуры:
‘Ввод исходных
данных
‘Вычисления
‘Вывод результатов
End
Sub
Пример_Л1.
Составить ГСА и текст программы для
вычисления функции:
где x
= a∙t2
+ 0.2 , a
= 18, t
– произвольное.
ГСА Текст
программы:
Option
Explicit
‘Запрет
использования необъявленных переменных
Sub
Лин_процесс1()
‘Начало
процедуры
Лин_процесс1
Const
a
= 18 ‘Объявление
константы a
Dim
t
As
Single
‘Объявление
вещественной переменной t
Dim
x
As
Single
‘Объявление
вещественной переменной x
Dim
y
As
Single
‘Объявление
вещественной переменной y
t
= Val(InputBox(«Введите
t»))
‘Ввод значения t
x = a
* t ^2 + 0.2
‘Расчет
x
y = (x
^ 2 + Log(x) — (x + 1) ^ 2) / (x * Sin(x))
‘Расчет
y
MsgBox
«Результат y=»
& y
‘Вывод y
в диалоговое окно
End
Sub
‘Конец
процедуры
Ниже приведено
решение того же примера с использованием
других способов ввода и вывода данных.
стр. 6 из
6
Соседние файлы в папке VBA-Учебные материалы
- #
- #
- #
- #
- #
- #
- #
Перейти к содержимому раздела
Серый форум
разработка скриптов
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
1 2018-09-29 15:57:28
- alkhimovmet
- Участник
- Неактивен
- Рейтинг : [0|0]
Тема: VBA: Запись результатов на другой лист
Добрый день.
У меня имеется макрос, результаты которог выводятся в столбец 1 на том же листе. А что прописать в макросе, чтобы результаты выводились на другой лист?
Вот код макроса:
Public Sub Counter()
Dim CounterCell As Range, i As Long, r As Range, dest As Range
Set CounterCell = ActiveSheet.Range("A1")
CounterCell.Value = 2674.96
Application.ScreenUpdating = False
i = 1372
Do While CounterCell.Value < 10000#
CounterCell.Value = CounterCell.Value + 0.01
If [MAX(BN6:BN1018)] > 4 Then
Cells(i, 1) = [A1]
i = i + 1
Else
If [MAX(EF6:EF1018)] > 4 Then
Cells(i, 1) = [A1]
End If
End If
Loop
Application.ScreenUpdating = True
End Sub
Надо, чтобы результааты выводились не в первый столбец этого же листа, а на другой лист с именем Лист 2
2 Ответ от alexii 2018-09-29 16:43:09 (изменено: alexii, 2018-09-29 16:44:01)
- alexii
- Разработчик
- Неактивен
Re: VBA: Запись результатов на другой лист
alkhimovmet пишет:
результааты выводились не в первый столбец этого же листа
Результаты у Вас выводятся не на «этот же лист», а на активный рабочий лист, работает лишь потому, что активный рабочий лист у Вас не меняется в процессе.
alkhimovmet пишет:
а на другой лист с именем Лист 2
Видимо, речь про это (не проверялось):
ThisWorkbook.Worksheets.Item("Лист 2").Cells(i, 1).Value = [A1]
3 Ответ от alkhimovmet 2018-09-30 08:41:06
- alkhimovmet
- Участник
- Неактивен
- Рейтинг : [0|0]
Re: VBA: Запись результатов на другой лист
Sheets("Лист2").Cells(i, 1) = Sheets("Sheet1").[A1]
Написал так и работает, но меня терзают смутные сомнения , что это не совсем так правильно. Может подскажите?
4 Ответ от alexii 2018-09-30 09:03:38
- alexii
- Разработчик
- Неактивен
Re: VBA: Запись результатов на другой лист
Я бы написал так:
ThisWorkbook.Worksheets.Item("Лист 2").Cells(i, 1).Value = ThisWorkbook.Worksheets.Item("Sheet1").Range("A1").Value
5 Ответ от alkhimovmet 2018-09-30 16:12:38
- alkhimovmet
- Участник
- Неактивен
- Рейтинг : [0|0]
Re: VBA: Запись результатов на другой лист
Спасибо огромное! Непременно заменю
6 Ответ от alkhimovmet 2018-10-02 14:23:26
- alkhimovmet
- Участник
- Неактивен
- Рейтинг : [0|0]
Re: VBA: Запись результатов на другой лист
Уважаемый alexii! Еще раз Вам спасибо. Вставил, как Вы рекомендовали, все работает, сбрев нет. Просто супер!!!
Сообщения 6
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Оптимальный путь вывода большого одномерного массива на лист |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |