excel - 检查对象是否在单元格范围内
问题描述
我正在 excel 中构建交互式计算。用户将移动图像并按下计算按钮。如果图像在某个单元格范围内,则范围(“c2”)应识别对象在哪个范围内(只有 4 个区域,它们是年季度正方形,Q1、Q2、Q3 和 Q4。Q1 在 e1 内:j14)
我已经能够通过 VBA 移动对象,但我无法检查它在哪个范围内:
ActiveSheet.Shapes("Grupo 24").Top = ActiveSheet.Range("B5").Offset(0, 4).Top
ActiveSheet.Shapes("Grupo 24").Left = ActiveSheet.Range("B5").Offset(3, 4).Left
上面的 VBA 会将对象移动到单元格(“E5”)右侧的位置(上图),但我无法检查图像是否在(“E1:J14”)内。
当我尝试检查时,作为测试,我收到错误消息:错误 13 不兼容类型:
If ActiveSheet.Shapes("Grupo 24").Top = ActiveSheet.Range("e1:j14") Then
MsgBox ("Within")
Else
MsgBox ("Outside")
End If
有任何想法吗?
解决方案
假设我们已经将Names
quad1、quad2、quad3和quad4 分配给单元块:
我们确定哪个单元格与 关联,Shape
然后遍历块以查找单元格在哪个块中:
Sub quadFinder()
Dim s As Shape, r As Range, i As Long
Set s = ActiveSheet.Shapes("Grupo 24")
Set r = s.TopLeftCell
For i = 1 To 4
If Not Intersect(r, Range("quad" & i)) Is Nothing Then
MsgBox quad & i
Exit Sub
End If
Next i
MsgBox "not in a quad"
End Sub
推荐阅读
- javascript - javascript 强制 ASP.NET 表单重新加载与 JQuery 自动完成文本框填充冲突?
- r - 在 R 中应用逐行转换,以便每行的总百分比为 100%
- java - 使用 Dagger2 Android 刷新 Oauth2
- laravel - 如何在没有 npm 的情况下安装 laravel/breeze?
- git - 合并没有引入合并的更改
- php - 如何修复 laravel 表单提交?
- python - “消息”对象没有属性“用户”
- python - 有没有办法自动回答弹出的警报框?
- javascript - array.find 返回多个结果
- javascript - 如何在javascript中通过给定的id查找对象的所有数据