乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 215|回复: 14

拾取点-获取表格单元格

[复制链接]

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-1-17 08:55:10 | 显示全部楼层 |阅读模式
有没有办法确定通过拾取点(而不是选择单元格边框)选择了哪些单元格(即行/列)
我希望能够发出提示,在表格中拾取一个点,并从该点确定拾取点所在的单元格 从那里,我'我将插入一个块或格式化单元格。
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-1-17 09:56:37 | 显示全部楼层
哇,似曾相识
039;这正是我将要发布的帖子所要求的。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-1-17 10:43:21 | 显示全部楼层
您好,Matt看看HitTest函数;J#039~
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-1-17 10:48:17 | 显示全部楼层
你可以看到这个很好的一个写在lisp上,搜索'selTableCell#039;作者:Lee Ambrosius,日期:2004年3月24日。源代码可从以下网址获得:http://hyperpics.blogs.com/beyond_the_ui/autolispvisual_lisp/
~&039;J#039~
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-1-17 11:18:24 | 显示全部楼层
试试看,似乎对我有用
  1. Option Explicit
  2. Function GetTableCell(ByVal oTable As AcadTable, ByVal varPt As Variant, _
  3.                       ByRef rowIndex As Long, ByRef colIndex As Long) As Variant
  4.      Dim wviewVec As Variant
  5.      Dim resVar(1) As Long
  6.      wviewVec = ThisDrawing.GetVariable("VIEWDIR")
  7.      oTable.HitTest varPt, wviewVec, rowIndex, colIndex
  8.     resVar(0) = rowIndex
  9.     resVar(1) = colIndex
  10.     GetTableCell = resVar
  11.    
  12. End Function
  13. Sub test()
  14.     Dim ar As Variant, _
  15.     e As AcadEntity, _
  16.     t As AcadTable, _
  17.     p As Variant, _
  18.     ip As Variant, _
  19.     r As Long, _
  20.     c As Long
  21.    
  22.     With ThisDrawing.Utility
  23.     .GetEntity e, ip, "Select table"
  24.     p = .GetPoint(, "Pick point in cell")
  25.     End With
  26.     Set t = e
  27.     ar = GetTableCell(t, p, r, c)
  28.       r = ar(0)
  29.       c = ar(1)
  30.       
  31.            MsgBox "Row " & r & ", Column " & c & vbCr & _
  32.             "Value: " & t.GetText(r, c)
  33. End Sub

~&039;J#039~
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-1-17 11:21:45 | 显示全部楼层
我本来打算发这个(现在还不行) 本人'我试图避免选择表格,然后选择一个单元格,如果它'这是可能的,因为李;s代码不't让你选择表格 本人'我现在有点困惑-试图写这篇文章,同时做实际的计费工作…我在想什么
  1. Public Sub SelectCell()
  2.     Dim objTable As AcadTable
  3.     Dim varPnt As Variant
  4.     Dim varCoords As Variant
  5.     Dim lngRow As Long, lngCol As Long
  6.    
  7.     varPnt = ThisDrawing.Utility.GetPoint(, "Select a cell to edit...")
  8.    
  9.     If objTable.HitTest(varPnt, varCoords, lngRow, lngCol) Then
  10.         MsgBox "Found a cell"
  11.     End If
  12. End Sub
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-1-17 11:37:35 | 显示全部楼层

只有一次的似曾相识,你怎么会有这种感觉?
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-1-17 11:49:41 | 显示全部楼层
Lee使用当前显示的选择窗口来查看视图中是否有任何表,然后遍历所有找到的表,查看命中测试是否成功。。。。。
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-1-17 11:55:14 | 显示全部楼层
这就是我必须遵循的道路,或者可以从拾取点获取表对象,然后从那里获取单元格#039;s位置?
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-1-17 12:24:45 | 显示全部楼层
格雷格B,
(来自Dictionary.com)
似曾相识-以前见过或经历过某事的印象
他的问题看起来很熟悉,因为这也是我想到的
除此之外,我不知道;我今天不想争论 
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-7 05:15 , Processed in 1.022119 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表