Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Макрос для контроллера
 
Здравствуйте,

Имеется файл в котором 3 столбца. Контроллер через COM3 один раз в секунду пишет в ячейку A1 свое состояние 1 или 0 а в ячейки с A2 по A50 значения.
В зависимости от состояния 0 или 1 данные из столбца А должны переписываться в столбец B (если  А1 =0) или в столбец C если (если  А1 =1)

В интернете нашел такой макрос который отслеживает изменение ячейки A1 и поставил его в код листа Sheet1. Но выдает ошибку 2023.
Может кто подскажет другео решение?

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim KeyCells As Range
   Dim a(), b As Variant

' The variable KeyCells contains the cells that will
   ' cause an alert when they are changed.
   Set KeyCells = Range("A1:A1")

If Not Application.Intersect(KeyCells, Range(Target.Address)) _
          Is Nothing Then

' Display a message when one of the designated cells has been
       ' changed.
     
b = Sheets("Sheet1").Cells(1, 1).Value
If b = 0 Then
a = Sheets("sheet1").Range("A2:A50").Value
Sheets("sheet1").Range("B2:B50").Value = a

Else
a = Sheets("sheet1").Range("A2:A50").Value
Sheets("sheet1").Range("C2:C50").Value = a
End If
End If

End Sub
Изменено: vit12 - 26 фев 2020 11:10:21
Формулы массива в виде кода VBA
 
{=SUM(SUMIFS(november!$A:$A;november!$D:$D;A6:A20;november!$C:$C;"schet";november!$B:$B;"D ";november!$F:$F;"<>22162")-SUMIFS(november!$A:$A;november!$D:$D;A6:A20;november!$C:$C;"schet";november!$B:$B;" K";november!$F:$F;"<>22162"))}
Формулы массива в виде кода VBA
 
Попробую, воспользоваться вашим вариантом, но все-же хотелось бы увидеть написание этого в виде VBA.

Насчет примера согласен, но во многих местах вместо "konto" будет стоять массив ячеек, которые надо проверять. Из-за этого использована формула массива. Например так:
={(SUMIFS(jaanuar!$A:$A;jaanuar!$D:$D;$AC$2;sheet1!$C:$C;A7:A40;jaanuar!$B:$B;"D ";jaanuar!$F:$F;"<>22162")}
Формулы массива в виде кода VBA
 
Здравствуйте,

Подскажите, как написать формулу массива в виде макроса, чтобы в ячейку пошла не формула, а только результат вычисления.
Сейчас в ячейке стоит такая формула. Хочется перевести все это дело в макрос чтобы ускорить работу файла (в нем около 10000 ячеек с похожими формулами, и скорость работы оставляет желать лучшего. Вариант отключения расчетов на время ввода данных не подходит.


={(SUMIFS(jaanuar!$A:$A;jaanuar!$D:$D;$AC$2;sheet1!$C:$C;"konto";jaanuar!$B:$B;"D ";jaanuar!$F:$F;"<>22162")}
VBA номер текстового поля как переменная, Задать номер поля в макросе при помощи переменной
 
Спасибо Дмитрий. Ответ нашел.
Изменено: vit12 - 23 окт 2019 07:10:24
VBA номер текстового поля как переменная, Задать номер поля в макросе при помощи переменной
 
Здравствуйте,

Есть пользовательская форма. В ней множество текстовых полей. Для переноса значений из полей в ячейки хотелось бы использовать цикл. Но для этого надо задать номер поля в качестве переменной. Есть ли такая возможность?
Вот Text1 хотелось бы чтобы менялось на 2, 3 и т.д.
Напишу тогда более подробно. И вот там где Text(B) мне надо, чтобы он понимал как Text1 потом Text2 и т.д. до конца цикла
Код
Dim B As Integer
For B=1 to 100
Sheets("Baza").Cells(1, B) = UserForm1.text(B).Value
Next B

Изменено: vit12 - 22 окт 2019 15:05:50
Поиск номера строки по части текста.
 
Спасибо. Все просто :)
Поиск номера строки по части текста.
 
Здравствуйте,

Подскажите, существует ли какая возможность определить номер строки если имеются, для примера, такие данные
А1 Petrov Vasili 2215 Work
A2 Stepanov Andrei 2175 Work
A3 Ivanov Fjodor 5522 Work

Для поиска берем часть текста которая уникальна для каждого человека: скажем 2175 и в результате поиска хотелось бы получить номер строки т.е. 2.
Возможно ли такое стандартными функциями, не прибегая к VBA.

Спасибо
Страницы: 1
Наверх