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

Excel 检查是否选择了多个单元格,excel,excel-2010,vba,Excel,Excel 2010,Vba,我想知道如何检查一个范围内是否有多个细胞被加速 我有3个单元格,我想检查的范围是“A:B”和“D”,我尝试这个代码,但它不适合我 If 3 - CountA(range) < 1 Then 如果3-计数a(范围)

我想知道如何检查一个范围内是否有多个细胞被加速

我有3个单元格,我想检查的范围是“A:B”和“D”,我尝试这个代码,但它不适合我

If 3 - CountA(range) < 1 Then
如果3-计数a(范围)<1,则

我怎样才能用另一种方法来做呢?

对于选定的范围,类似这样的操作:

If 3-Selection.Cells.Count < 1 then
如果3-Selection.Cells.Count<1,则
或者,如果您可能选择了很多单元格,请使用此单元格:

If 3-Selection.Cells.Countlarge < 1 Then
如果3-Selection.Cells.Countlarge<1,则

我想你应该尝试一下这方面的东西

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

如果您使用的是
工作表\u更改(ByVal目标作为范围)
工作表\u选择更改(ByVal目标作为范围)
,则使用以下代码:

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)
If InStr(MyRange.Address, ":") > 0 Or InStr(MyRange.Address, ",") > 0 Or InStr(MyRange.Address, ";") > 0 Then
有时使用“
”;“
”,有时使用“
”,“
”,以便我们同时检查它们

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

`A1;C1` (Cells A1 and C1 are selected) or
`E1:E4` (E1 to E4 are selected)
If InStr(MyRange.Address, ":") > 0 Or InStr(MyRange.Address, ",") > 0 Or InStr(MyRange.Address, ";") > 0 Then

很高兴您在选择所有单元格时添加了.CountLarge以防止溢出。