Я обычно работаю с массивами:
Sub Test1()
Dim rngnumbers As Excel.Range
Dim arrVals As variant
Dim lngRow As long
Arrvals = Sheet2.Range("C2:F999").value
For Lngrow = lbound(arrvals,1) to ubound(arrvals,1)
If arrvals(lngrow,4) >= 100 Then
If arrvals(lngrow,1)= "John" Or arrvals(lngrow,1) = "Tom" Then '''The problem here is that it only looks at the cell C2 and not the adjacent cell
Sheet1.Range("I999").End(xlUp).Offset(1, 0).Value = arrvals(lngrow,4)
Else
End If
End If
Next lngrow
End Sub
На самом деле, я бы тоже, вероятно, построил выходной массив, но мой большой палец устал ...
Диапазон в том, что: что-то определенное его началом и концом не по его содержанию. «Итализация» в течение ряда на самом деле не имеет смысла в общем случае. Подумайте, например, как вы «итерация» по диапазону, произведенному двумя датами. Вы бы итерации за день? к месяцу? к году? на неделю? Это не четко определено. ИМО, тот факт, что это разрешено для форвардных диапазонов, следует рассматривать только как удобный метод.
Если вы хотите обратиться за обратным направлением, подобный таким образом, вы всегда можете использовать downto
:
$ r = 10..6
=> 10..6
$ (r.first).downto(r.last).each { |i| puts i }
10
9
8
7
6
вот здесь некоторые больше мыслей от других, почему это трудно обоим Итерация и последовательно занимаются обратным диапазонами.
Что касается меня самый простой путь:
[*0..9].reverse
Другой способ выполнить итерации для перечисления:
(1..3).reverse_each{|v| p v}
Я добавляю одну возможность реализовать итерацию в течение обратного диапазона. Я не использую его, но это возможность. Это немного рискованно для обезьяны патч рубиновых объектов.
class Range
def each(&block)
direction = (first<=last ? 1 : -1)
i = first
not_reached_the_end = if first<=last
lambda {|i| i<=last}
else
lambda {|i| i>=last}
end
while not_reached_the_end.call(i)
yield i
i += direction
end
end
end
Итализатор по диапазону в Ruby с каждый
вызывает метод
метода на первом объекте в диапазоне.
$ 4.succ
=> 5
и 5 находится за пределами диапазона.
Вы можете моделировать обратную итерацию с этим взломом:
(-4..0).each { |n| puts n.abs }
Иоанн отметил, что это не будет работать, если она пропанами 0. Это будет:
>> (-2..2).each { |n| puts -n }
2
1
0
-1
-2
=> -2..2
не может сказать, что мне действительно нравится кто-либо из них, потому что они видны неясными намерение.
Возможность создавать элементы на лету более простым способом, передавая все атрибуты в качестве второго аргумента jQuery ()
:
jQuery('<div/>', {
id: 'foo',
mouseenter: function() {
// do stuff
},
html: jQuery('<a/>', {
href: 'http://google.com',
click: function() {
// do stuff
}
})
});
Все свойства, не являющиеся атрибутами, сопоставляются с соответствующим методом jQuery. Таким образом, html
вызовет .html ()
и click
свяжет новое событие click
через .click ()
...
Для меня это было так:
"Все события могут быть живыми событиями"
"Мы очень горды считать некоторые дополнительные события среди них поддерживается live (). 1.4 вводит поддержка изменений между браузерами, подчиниться, сосредоточение, focusout, mouseenter, и mouselave через событие делегирование в .live () ".
Я ждал этого на событии изменений в течение многих лет!
-121--1002654-, если список не такой большой.
я думаю,
[* 0.. 4] .reverse.each {| i | puts i}
Это самый простой способ.
Согласно книге "Programming Ruby", объект Range хранит две конечные точки диапазона и использует член .succ
для генерации промежуточных значений. В зависимости от того, какой тип данных вы используете в вашем диапазоне, вы всегда можете создать подкласс Integer
и переопределить член .succ
так, чтобы он действовал как обратный итератор (вероятно, вы также захотите переопределить .next
).
Вы также можете достичь искомых результатов без использования диапазона. Попробуйте так:
4.step(0, -1) do |i|
puts i
end
Это будет шаг от 4 до 0 с шагом -1. Однако, я не знаю, сработает ли это для чего-нибудь, кроме целочисленных аргументов.
Я не уверен, будет ли это полезно для вас, но это был бы довольно простой способ сделать это, не уверен в точной «скорости» этого, хотя.
List<string> collection = new List<string>();
collection.Sort();
foreach(string value in collection)
{
if(value == "stringToLookFor")
{
return value;
}
{
-121--2681531- Посмотрите на некоторые из этих тем . Поскольку проекты являются открытыми, вы должны иметь возможность внимательно изучить их.
-121--2304521- Как уже говорилось, причина заключается в том, что Range # каждый
отправляет succ
в его начало, затем в результат этого succ
вызова и так далее, пока результат не будет больше конечного значения. Вы не можете добраться от 4 до 0, вызвав succ
, и фактически вы уже начинаете больше конца.