powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / корректировка скрипта VBA
25 сообщений из 52, страница 2 из 3
корректировка скрипта VBA
    #37624196
Medvedoc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ага, нашел ))) как включать при помощи кнопки понял, а вот как выключать никак не допетрю ))) Для кнопки пуск я выбираю функцию СТАРТ, а вот для стопа нет нужной функции.
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624205
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Option Explicit
Dim CurRow As Long
Dim Runned As Boolean

Sub Start()

Runned = True
CurRow = 1
Application.OnTime Now, "MyProc"

End Sub
Sub Stopp()

Runned = False

End Sub
Sub MyProc()

If Runned Then
  ThisWorkbook.Worksheets(1).Cells(CurRow, 3) = ThisWorkbook.Worksheets(1).Cells(1, 1)
  CurRow = CurRow + 1
  Application.OnTime DateAdd("s", 1800, Now), "MyProc"
End If

End Sub
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624224
Medvedoc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
круто ))) голова!!!
Подскажи пожалуйста, а можно как-нибудь на листе вынести поле или ячейку для управления интервала считывания, например, не 1800 секунда, а задавать свое время - другое?
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624226
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624236
Medvedoc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а не подскажешь как? дописывать в модуле? если да, то что? Или создать через формы поле и привязать его к определенному участку кода?
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624261
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, подключи голову ну хоть чуть чуть.
Так сложно вместо 1800 поставить ссылку на ячейку?
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624290
Medvedoc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
извини, но я в VBA ПОЛНЫЙ "0".
Если я правильно понял, то в следующем куске кода:
Код: vbnet
1.
2.
3.
4.
5.
If Runned Then
  ThisWorkbook.Worksheets(1).Cells(CurRow, 3) = ThisWorkbook.Worksheets(1).Cells(1, 1)
  CurRow = CurRow + 1
  Application.OnTime DateAdd("s", 1800, Now), "MyProc"
End If


мне необходимо сделать замену следующим образом
Код: vbnet
1.
2.
3.
4.
5.
If Runned Then
  ThisWorkbook.Worksheets(1).Cells(CurRow, 3) = ThisWorkbook.Worksheets(1).Cells(1, 1)
  CurRow = CurRow + 1
  Application.OnTime DateAdd("s", С3, Now), "MyProc"
End If


или
Код: vbnet
1.
2.
3.
4.
5.
If Runned Then
  ThisWorkbook.Worksheets(1).Cells(CurRow, 3) = ThisWorkbook.Worksheets(1).Cells(1, 1)
  CurRow = CurRow + 1
  Application.OnTime DateAdd("s", ThisWorkbook.Worksheets(1).Cells(1, 3), Now), "MyProc"
End If
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624293
Medvedoc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
грубо говоря например в ячейке С3 буду задавать значение времени )))
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624332
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Medvedocгрубо говоря например в ячейке С3 буду задавать значение времени )))MedvedocПри этом каждое следующее значение должно переносится в последующую ячейку: С2,С3,С4 и т.д..
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624346
Medvedoc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я не про то ))) ну например в ячейке F6 я буду вводить значение для таймера. Тогда код получается как?
как прописать туда ячейку?
Код: vbnet
1.
2.
3.
4.
5.
If Runned Then
  ThisWorkbook.Worksheets(1).Cells(CurRow, 3) = ThisWorkbook.Worksheets(1).Cells(1, 1)
  CurRow = CurRow + 1
  Application.OnTime DateAdd("s", F6, Now), "MyProc"
End If


или
Код: vbnet
1.
2.
3.
4.
5.
If Runned Then
  ThisWorkbook.Worksheets(1).Cells(CurRow, 3) = ThisWorkbook.Worksheets(1).Cells(1, 1)
  CurRow = CurRow + 1
  Application.OnTime DateAdd("s", ThisWorkbook.Worksheets(1).Cells(6, 6), Now), "MyProc"
End If
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624359
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
второе
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624374
Medvedoc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо тебе огромное!!! Работает как часы )))
Теперь буду думать как дальше сделать ))) Хочу несколько параметров так считывать, а потом график вывести.
Подскажи пожалуйста, а можно вообще в excel сделать график, который будет строиться из одной ячейки, в которой значения считываются с внешнего устройства?
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624382
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
График из одного значения? Оригинально.
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624385
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MedvedocПодскажи пожалуйста, а можно вообще в excel сделать график, который будет строиться из одной ячейки, в которой значения считываются с внешнего устройства?
Так кто мешает сделать график на этом файле? Он будет автоматически перерисовываться по мере поступления данных.
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624387
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MedvedocРаботает как часы )))
Естественно, там же используется таймер
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624426
Medvedoc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ты меня не совсем понял ))) если не делать перенос значений из ячейки A1 в С3, а строить график напрямую из значений ячейки А1. Ведь в ней значения постоянно меняются, поскольку берутся с внешнего источника.
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624430
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где будут храниться данные для построения графика? В некотором промежуточном месте, иначе как его построить? сейчас промеждуточное место - столбец С
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624442
Medvedoc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
понятно ))) самый оптимальный вариант, твой написанный модуль.
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624706
Medvedoc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня вопросик
Код: vbnet
1.
ThisWorkbook.Worksheets(1).Cells(CurRow, 3) = ThisWorkbook.Worksheets(1).Cells(1, 1)


судя данному коду значение ячейки А1 записывается в ячейку С3. Функция CurRow отвечает за запись. А как быть, если значение надо записать в ячейку С3?
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624728
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по данному коду, значение из ячейки $A$1 (то есть всегда абсолютно из одной и той же) записывается в _столбец_ 3 (т.е. "C)" - т.е. в зависимости от значения СurRow=1,2,3,4,.. будет записываться в C1, C2, C3, C4,...

ТС, если у вас книга и придет через неделю - то клавишу F1 никто не отменял. Вам уже не один человек сказал - читайте хотя бы хелп по тем функциям/процедурам, что вам дали в коде. И по объектной модели. Иначе вы быстро окажетесь в одиночестве со своими "вопросами"...
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624756
Medvedoc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получилось )))
вот код
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Option Explicit
Dim CurRow As Long
Dim Runned As Boolean

Sub Start()

Runned = True
CurRow = 4
Application.OnTime Now, "MyProc"

End Sub
Sub Stopp()

Runned = False

End Sub
Sub MyProc()

If Runned Then
  ThisWorkbook.Worksheets(1).Cells(CurRow, 10) = ThisWorkbook.Worksheets(1).Cells(4, 2)
  ThisWorkbook.Worksheets(1).Cells(CurRow, 11) = ThisWorkbook.Worksheets(1).Cells(4, 3)
  ThisWorkbook.Worksheets(1).Cells(CurRow, 12) = ThisWorkbook.Worksheets(1).Cells(4, 4)
  ThisWorkbook.Worksheets(1).Cells(CurRow, 13) = ThisWorkbook.Worksheets(1).Cells(4, 5)
  CurRow = CurRow + 1
   Application.OnTime DateAdd("s", ThisWorkbook.Worksheets(1).Cells(6, 5), Now), "MyProc"
End If

End Sub


Получилось так как я и хотел ))) А как сделать так, чтобы при нажатии на кнопку очистить - заполненные ячейки очистились?
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624761
Medvedoc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может в конце добавить
Код: vbnet
1.
2.
3.
4.
5.
Sub Clear()

ThisWorkbook.Worksheets(1).Range("J4:J1000").Clear

End Sub


и создать ссылку на данный кусок кода, тогда нужный диапазон ячеек будет очищаться )))
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624763
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например:
Код: vbnet
1.
ThisWorkbook.Worksheets(1).Columns("K:N").ClearContents
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624775
Medvedoc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ваш вариант тоже верен, но в моем случае он не подходит, поскольку в таблице есть заголовки, а в вашем коде они явно очистятся )))
...
Рейтинг: 0 / 0
корректировка скрипта VBA
    #37624792
Medvedoc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получился вот такой код )))
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
Option Explicit
Dim CurRow As Long
Dim Runned As Boolean

Sub Start()

Runned = True
CurRow = 4
Application.OnTime Now, "MyProc"

End Sub
Sub Stopp()

Runned = False

End Sub
Sub MyProc()

If Runned Then
  ThisWorkbook.Worksheets(1).Cells(CurRow, 10) = ThisWorkbook.Worksheets(1).Cells(4, 2)
  ThisWorkbook.Worksheets(1).Cells(CurRow, 11) = ThisWorkbook.Worksheets(1).Cells(4, 3)
  ThisWorkbook.Worksheets(1).Cells(CurRow, 12) = ThisWorkbook.Worksheets(1).Cells(4, 4)
  ThisWorkbook.Worksheets(1).Cells(CurRow, 13) = ThisWorkbook.Worksheets(1).Cells(4, 5)
  CurRow = CurRow + 1
   Application.OnTime DateAdd("s", ThisWorkbook.Worksheets(1).Cells(6, 5), Now), "MyProc"
End If

If CurRow > 10 Then
Runned = False
End If

End Sub
Sub Clear()
ThisWorkbook.Worksheets(1).Range("J4:J1000").Clear
ThisWorkbook.Worksheets(1).Range("K4:K1000").Clear
ThisWorkbook.Worksheets(1).Range("L4:L1000").Clear
ThisWorkbook.Worksheets(1).Range("M4:M1000").Clear

End Sub


У меня пару вопросов.
1 - Как в этом куске кода можно укоротить до одной строки диапазоны?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Sub Clear()
ThisWorkbook.Worksheets(1).Range("J4:J1000").Clear
ThisWorkbook.Worksheets(1).Range("K4:K1000").Clear
ThisWorkbook.Worksheets(1).Range("L4:L1000").Clear
ThisWorkbook.Worksheets(1).Range("M4:M1000").Clear

End Sub


2 - как в данном куске кода вызвать очищение ячеек - sub Clear?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub MyProc()

If Runned Then
  ThisWorkbook.Worksheets(1).Cells(CurRow, 10) = ThisWorkbook.Worksheets(1).Cells(4, 2)
  ThisWorkbook.Worksheets(1).Cells(CurRow, 11) = ThisWorkbook.Worksheets(1).Cells(4, 3)
  ThisWorkbook.Worksheets(1).Cells(CurRow, 12) = ThisWorkbook.Worksheets(1).Cells(4, 4)
  ThisWorkbook.Worksheets(1).Cells(CurRow, 13) = ThisWorkbook.Worksheets(1).Cells(4, 5)
  CurRow = CurRow + 1
   Application.OnTime DateAdd("s", ThisWorkbook.Worksheets(1).Cells(6, 5), Now), "MyProc"
End If

If CurRow > 10 Then
Runned = False
End If

End Sub
...
Рейтинг: 0 / 0
25 сообщений из 52, страница 2 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / корректировка скрипта VBA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]