excel vba select 负范围
excel vba select negative range
- 排序“B 列”<== 使用以下代码完成:
' sorts %change from cell B2 to the end of the line
Range("B2", Range("B2").End(xlDown)).Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlNo
数据:
A
B
C
1
8
2
2
-2
4
3
3
-1
4
-5
8
5
0
10
6
-33
65
输出:
A
B
C
6
-33
65
4
-5
8
2
-2
4
5
0
10
3
3
-1
1
8
2
- Select 仅限负范围单元格
现在光标将位于值为 -33 的单元格(单元格 B2)中。
我需要 select 值为 -33、-5 和 -2 的范围。有没有一种快速的方法(内置公式)可以在不评估每个单元格值的情况下识别这些范围?
注意:获取的数据是动态的,行数不固定。
关注你的主要问题 select 只有负面细胞(即排序后 - 有很多答案 :-) 你可以尝试:
With Sheet1 ' << the sheet's Code(Name)
Dim lastRow As Long
lastRow = .Range("B" & .Rows.Count).End(xlUp).Row
Dim srchRow As Long
srchRow = .Evaluate("Match(False,B2:B" & lastRow & "<0,0)")
'Debug.Print srchRow
Dim rng As Range
Set rng = .Range("B2", .Cells(srchRow, "B"))
rng.Select
End With
Select 排序列中的负值
Option Explicit
Sub Test()
With ActiveSheet.Range("A1").CurrentRegion
.Sort Key1:=.Columns(2), Order1:=xlAscending, Header:=xlYes
With .Columns(2).Resize(.Rows.Count - 1).Offset(1)
On Error Resume Next
.Resize(Application.CountIf(.Cells, "<0")).Select
On Error GoTo 0
End With
End With
End Sub
- 排序“B 列”<== 使用以下代码完成:
' sorts %change from cell B2 to the end of the line
Range("B2", Range("B2").End(xlDown)).Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlNo
数据:
A | B | C |
---|---|---|
1 | 8 | 2 |
2 | -2 | 4 |
3 | 3 | -1 |
4 | -5 | 8 |
5 | 0 | 10 |
6 | -33 | 65 |
输出:
A | B | C |
---|---|---|
6 | -33 | 65 |
4 | -5 | 8 |
2 | -2 | 4 |
5 | 0 | 10 |
3 | 3 | -1 |
1 | 8 | 2 |
- Select 仅限负范围单元格
现在光标将位于值为 -33 的单元格(单元格 B2)中。 我需要 select 值为 -33、-5 和 -2 的范围。有没有一种快速的方法(内置公式)可以在不评估每个单元格值的情况下识别这些范围?
注意:获取的数据是动态的,行数不固定。
关注你的主要问题 select 只有负面细胞(即排序后 - 有很多答案 :-) 你可以尝试:
With Sheet1 ' << the sheet's Code(Name)
Dim lastRow As Long
lastRow = .Range("B" & .Rows.Count).End(xlUp).Row
Dim srchRow As Long
srchRow = .Evaluate("Match(False,B2:B" & lastRow & "<0,0)")
'Debug.Print srchRow
Dim rng As Range
Set rng = .Range("B2", .Cells(srchRow, "B"))
rng.Select
End With
Select 排序列中的负值
Option Explicit
Sub Test()
With ActiveSheet.Range("A1").CurrentRegion
.Sort Key1:=.Columns(2), Order1:=xlAscending, Header:=xlYes
With .Columns(2).Resize(.Rows.Count - 1).Offset(1)
On Error Resume Next
.Resize(Application.CountIf(.Cells, "<0")).Select
On Error GoTo 0
End With
End With
End Sub