Matersammichman 发表于 2007-1-17 08:55:10

选取点 - 获取表格单元格

是否有办法确定通过选择点(不选择单元格边框)选择了哪个单元格(即行/列)。
我希望能够发出一个提示,在表格中选取一个点,并从该点确定选取点在哪个单元格中。从那里,我将插入一个块或格式化单元格。
**** Hidden Message *****

Fatty 发表于 2007-1-17 09:56:37

哇,似曾相识。
这正是我要发布的帖子所要求的。

Fatty 发表于 2007-1-17 10:43:21

嗨Matt
看看HitTest函数
Hth
~'J'~

Fatty 发表于 2007-1-17 10:48:17

您可以在lisp上看到这个不错的例子,
搜索Lee Ambrosius于2004年3月24日编写的“seltable cell ”
源代码可从以下网址获得:
http://hyperpics . blogs . com/beyond _ the _ ui/AutoLISP visual _ lisp/
~ ' J ' ~

Jeff_M 发表于 2007-1-17 11:18:24

我打算发布这个(这还不起作用)。 如果可能的话,我试图避免选择表格,然后选择一个单元格 - 它必须是,因为Lee的代码不会让你选择表格。 我现在有点陷入困境 - 试图写这个,同时做实际的计费工作....我在想什么??!?
Public Sub SelectCell()
    Dim objTable As AcadTable
    Dim varPnt As Variant
    Dim varCoords As Variant
    Dim lngRow As Long, lngCol As Long
   
    varPnt = ThisDrawing.Utility.GetPoint(, "Select a cell to edit...")
   
    If objTable.HitTest(varPnt, varCoords, lngRow, lngCol) Then
      MsgBox "Found a cell"
    End If
End Sub

Matersammichman 发表于 2007-1-17 11:21:45


当它只发生一次时,你如何获得似曾相识?

Jeff_M 发表于 2007-1-17 11:37:35

Lee使用当前显示的选择窗口来查看视图中是否有任何表,然后循环遍历任何找到的表以查看HitTest是否成功......

Bryco 发表于 2007-1-17 11:49:41

那么这是我必须走的路吗,或者有可能从拾取点获得表格对象,然后从那里获得单元格的位置吗?

Bryco 发表于 2007-1-17 11:55:14

Greg B,
(来自Dictionary.com)
似曾相识——一种以前见过或经历过某事的印象。
他的问题看起来很熟悉,因为这也是我想到的。
除此之外,我今天不想争论。

Jeff_M 发表于 2007-1-17 12:24:45

我认为这正是您想要的
我喜欢您将p1作为选择集的两个角来填充它的方式,它工作正常。
Sub WhatCell()
    Dim oTable As AcadTable
    Dim P1
    Dim V(2) As Double
    Dim R As Long, C As Long
    V(2) = 1
    Set oTable = EntSel(, P1) 'Getentity function
    oTable.SelectSubRegion P1, P1, V, V, 1 _
      , True, R, R, C, C
   
    Debug.Print R, C
    Debug.Print oTable.GetText(R, C)
End Sub
页: [1] 2
查看完整版本: 选取点 - 获取表格单元格