检查是否选择了多个单元格

时间:2015-06-16 06:26:11

标签: excel excel-vba excel-2010 vba

我想知道如何检查一个范围内是否有一个以上的单元格?

我有3个细胞我想检查范围是" A:B"还有" D",我正在尝试这个代码,但它不适合我。

If 3 - CountA(range) < 1 Then

我怎样才能以另一种方式做到这一点?

4 个答案:

答案 0 :(得分:7)

已选择范围:

If 3-Selection.Cells.Count < 1 then

或者,如果您有可能选择了很多单元格,请使用此单元格:

If 3-Selection.Cells.Countlarge < 1 Then

答案 1 :(得分:2)

如果您使用的是Worksheet_Change(ByVal Target As Range)Worksheet_SelectionChange(ByVal Target As Range),请使用以下代码:

If InStr(Target.Address, ":") > 0 Or InStr(Target.Address, ",") > 0 Or InStr(Target.Address, ";") > 0 Then

这将检查所选范围是否为例如:

`A1;C1` (Cells A1 and C1 are selected) or
`E1:E4` (E1 to E4 are selected)

有时使用";",有时使用",",以便我们检查它们。

您可以使用您在代码中定义的范围,而不是Target,例如:

If InStr(MyRange.Address, ":") > 0 Or InStr(MyRange.Address, ",") > 0 Or InStr(MyRange.Address, ";") > 0 Then

答案 2 :(得分:0)

我想你想尝试这些方面的东西

Dim rng1 As Range
Set rng1 = Range("A1:B1,D1")
MsgBox 3 - rng1.Cells.Count

答案 3 :(得分:0)

 Dim SelectedRng As Range, SelectedRngStr As String
 Set SelectedRng = Range(Target.Address) ' Or Range("A1:A2"), whatever
 If SelectedRng.Cells.Count = 1 Then
  SelectedRngStr = SelectedRng.Value
 Else
  Debug.Print "SelectedRng.Cells.Count = " & SelectedRng.Cells.Count
 End If