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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос-присвоить значение при выполнении условия - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Макрос-присвоить значение при выполнении условия
windy_man Дата: Понедельник, 15.10.2012, 21:36 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Доброго всем времени суток.
Вот начал осваивать написание макросов ну что-то не получается.
Вот код, не могу понять что в нем не правильно:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim x, y, z, h, n, l, m
x = Sheets(1).Range("H3:H200")
y = Sheets(1).Range("I3:I200")
z = Sheets(1).Range("J3:J200")
h = Sheets(1).Range("K3:K200")
n = Sheets(1).Range("L3:L200")
l = Sheets(1).Range("M3:M200")
m = Sheets(1).Range("U3:U200")
If (x > 0) Is Nothing Then If (x = y + z + h + n + l) Is Nothing Then Range("U3:U200").Formula = 1
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("V3:V200")) Is Nothing Then
With Target(21, 22)
.Value = Now
.EntireColumn.AutoFit
End With
End If
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("B3:B200")) Is Nothing Then
With Target(1, 2)
.Value = Now
.EntireColumn.AutoFit
End With
End If
End Sub
 
Ответить
СообщениеДоброго всем времени суток.
Вот начал осваивать написание макросов ну что-то не получается.
Вот код, не могу понять что в нем не правильно:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim x, y, z, h, n, l, m
x = Sheets(1).Range("H3:H200")
y = Sheets(1).Range("I3:I200")
z = Sheets(1).Range("J3:J200")
h = Sheets(1).Range("K3:K200")
n = Sheets(1).Range("L3:L200")
l = Sheets(1).Range("M3:M200")
m = Sheets(1).Range("U3:U200")
If (x > 0) Is Nothing Then If (x = y + z + h + n + l) Is Nothing Then Range("U3:U200").Formula = 1
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("V3:V200")) Is Nothing Then
With Target(21, 22)
.Value = Now
.EntireColumn.AutoFit
End With
End If
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("B3:B200")) Is Nothing Then
With Target(1, 2)
.Value = Now
.EntireColumn.AutoFit
End With
End If
End Sub

Автор - windy_man
Дата добавления - 15.10.2012 в 21:36
Hugo Дата: Понедельник, 15.10.2012, 23:21 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
[vba]
Code
Dim x, y, z, h, n, l, m  
x = Sheets(1).Range("H3:H200")  
y = Sheets(1).Range("I3:I200")  
z = Sheets(1).Range("J3:J200")  
h = Sheets(1).Range("K3:K200")  
n = Sheets(1).Range("L3:L200")  
l = Sheets(1).Range("M3:M200")  
m = Sheets(1).Range("U3:U200")  
If (x > 0) Is Nothing Then If (x = y + z + h + n + l) Is Nothing Then Range("U3:U200").Formula = 1
[/vba]
Это сперва из кода выкинуть, потом объясните, что это было? smile
[vba]
Code
If Target.Cells.Count > 1 Then Exit Sub
[/vba]
Достаточно прописать один раз, и первой строкой.

Выполнив
[vba]
Code
x = Sheets(1).Range("H3:H200")
[/vba]
Вы получите массив, а не одно значение.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
Сообщение[vba]
Code
Dim x, y, z, h, n, l, m  
x = Sheets(1).Range("H3:H200")  
y = Sheets(1).Range("I3:I200")  
z = Sheets(1).Range("J3:J200")  
h = Sheets(1).Range("K3:K200")  
n = Sheets(1).Range("L3:L200")  
l = Sheets(1).Range("M3:M200")  
m = Sheets(1).Range("U3:U200")  
If (x > 0) Is Nothing Then If (x = y + z + h + n + l) Is Nothing Then Range("U3:U200").Formula = 1
[/vba]
Это сперва из кода выкинуть, потом объясните, что это было? smile
[vba]
Code
If Target.Cells.Count > 1 Then Exit Sub
[/vba]
Достаточно прописать один раз, и первой строкой.

Выполнив
[vba]
Code
x = Sheets(1).Range("H3:H200")
[/vba]
Вы получите массив, а не одно значение.

Автор - Hugo
Дата добавления - 15.10.2012 в 23:21
windy_man Дата: Понедельник, 15.10.2012, 23:46 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Dim x, y, z, h, n, l, m
x = Sheets(1).Range("H3:H200")
y = Sheets(1).Range("I3:I200")
z = Sheets(1).Range("J3:J200")
h = Sheets(1).Range("K3:K200")
n = Sheets(1).Range("L3:L200")
l = Sheets(1).Range("M3:M200")
m = Sheets(1).Range("U3:U200")
If (x > 0) Is Nothing Then If (x = y + z + h + n + l) Is Nothing Then Range("U3:U200").Formula = 1

\\Здесь с начало я присваиваю каждому диапазону букву, потом я задаю условие если в первом диапазоне появилось значение >0 то начинается другое условие в котором сравнивается диапазон х с суммой других диапазонов и если значения равны то присваиваем значение 1 ячейки находящейся в диапазоне m что бы в рядом стоящей ячейке появилась текущая дата.

smile smile Ну это я так думаю а как на само деле не знаю smile
 
Ответить
СообщениеDim x, y, z, h, n, l, m
x = Sheets(1).Range("H3:H200")
y = Sheets(1).Range("I3:I200")
z = Sheets(1).Range("J3:J200")
h = Sheets(1).Range("K3:K200")
n = Sheets(1).Range("L3:L200")
l = Sheets(1).Range("M3:M200")
m = Sheets(1).Range("U3:U200")
If (x > 0) Is Nothing Then If (x = y + z + h + n + l) Is Nothing Then Range("U3:U200").Formula = 1

\\Здесь с начало я присваиваю каждому диапазону букву, потом я задаю условие если в первом диапазоне появилось значение >0 то начинается другое условие в котором сравнивается диапазон х с суммой других диапазонов и если значения равны то присваиваем значение 1 ячейки находящейся в диапазоне m что бы в рядом стоящей ячейке появилась текущая дата.

smile smile Ну это я так думаю а как на само деле не знаю smile

Автор - windy_man
Дата добавления - 15.10.2012 в 23:46
  • Страница 1 из 1
  • 1
Поиск:

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