Sub testq()
Do
For Each cell In ActiveSheet.UsedRange
cell.Activate
If ActiveCell.Column <> 1 And ActiveCell.Row <> 1 Then
If ActiveCell.NumberFormat = "0.00" And _
ActiveCell.Offset(-1, 0).NumberFormat <> "0.00" _
And ActiveCell.Offset(0, -1).NumberFormat <> "0.00" _
Then ActiveWindow.FreezePanes = True
End If
Next
Exit Do
Loop Until ActiveWindow.FreezePanes = True
End Sub
Не могу разобраться с синтаксисом этого оператора. Если его убрать, то получается слишком долгий перебор всех ячеек. Если его оставить, как он сейчас есть, то перебор осуществляется всё равно по всем ячейкам. Если его поставить перед Next, то перебор заканчивается на 1-ой же ячейки. Принцип, понимаю, наверное вообще следует отказаться от For each, но как по-другому осуществить перебор ячеек на проверку условий не понимаю.
И ещё:
Set FoundCell = Range("A1:A10").Find(what:="a", after:=LastCell)
Как можно здесь воспользоваться оператором OR, если требуется чтобы он искал несколько значений, да ещё и так, чтобы он не множил сущности типо этого:
Set FoundCell = Range("A1:A10").Find(what:="a", after:=LastCell) or _
Set FoundCell = Range("A1:A10").Find(what:="b", after:=LastCell) or _
Set FoundCell = Range("A1:A10").Find(what:="c", after:=LastCell)
Заранее благодарю.
Do
For Each cell In ActiveSheet.UsedRange
cell.Activate
If ActiveCell.Column <> 1 And ActiveCell.Row <> 1 Then
If ActiveCell.NumberFormat = "0.00" And _
ActiveCell.Offset(-1, 0).NumberFormat <> "0.00" _
And ActiveCell.Offset(0, -1).NumberFormat <> "0.00" _
Then ActiveWindow.FreezePanes = True
End If
Next
Exit Do
Loop Until ActiveWindow.FreezePanes = True
End Sub
Не могу разобраться с синтаксисом этого оператора. Если его убрать, то получается слишком долгий перебор всех ячеек. Если его оставить, как он сейчас есть, то перебор осуществляется всё равно по всем ячейкам. Если его поставить перед Next, то перебор заканчивается на 1-ой же ячейки. Принцип, понимаю, наверное вообще следует отказаться от For each, но как по-другому осуществить перебор ячеек на проверку условий не понимаю.
И ещё:
Set FoundCell = Range("A1:A10").Find(what:="a", after:=LastCell)
Как можно здесь воспользоваться оператором OR, если требуется чтобы он искал несколько значений, да ещё и так, чтобы он не множил сущности типо этого:
Set FoundCell = Range("A1:A10").Find(what:="a", after:=LastCell) or _
Set FoundCell = Range("A1:A10").Find(what:="b", after:=LastCell) or _
Set FoundCell = Range("A1:A10").Find(what:="c", after:=LastCell)
Заранее благодарю.