以下是引用菊石泽露在2007-2-11 23:19:27的发言:我2月4日注册此坛,此前对宏、域、vba一无所知。自觉来此很有收获,但水平实在有限! 设想vba或宏应该可以解决此问题,但因知识欠缺,尚感无从下手! 谢谢sylun兄回复和帮助,老大和其余3位斑竹若是有空且不嫌太小儿科,斑头们有烦大架了! 先回复楼主两个问题: 关于将域代码转换为静态文本的快捷键CTRL+SHIFT+F9,此命令可作用于所选内容,如果是单元格对象(注意,不是所选内容),请扩展为整行或者整个表格后按下CTRL+SHIFT+F9,通常选定整个表格。对于单元格或者列对象,它不发生作用。究其原因,我可以初步解释一下: CTRL+SHIFT+F9命令仅作用于连续的RANGE(SELECTION对象本质也是RANGE对象),WORD中的表格/单元格/列/行对象是有特殊规定的,一个单元格由左右框线和单元格内的RANGE对象组成(以后你会知道VBA中取得单元格文本是怎么做的,你也可以搜索一下),在默认选定状态下,选中整个单元格或者列时,它不认为是一个连续的RANGE对象,行是一个连续的RANGE对象,从行起始位置直到行结束标记,表格也是一个连续的RANGE对象。 表格中的RANGE对象,从表格起始位置开始,按行向右连续,直到行结束返回左侧位置(新行起点),如此直到表格结束位置。 如果文本中无其他域,可直接使用CTRL+A,然后使用此命令。 由于楼主对于单元格地址尚不太清晰,一下使用域,特别是动态引用,自然效果很差,何况是复杂的单元格,建议用以下代码取得当前光标位置的单元格地址。 '* +++++++++++++++++++++++++++++ '* Created By SHOUROU@ExcelHome 2007-2-12 5:48:15 '仅测试于System: Windows NT Word: 11.0 Language: 2052 '№ 0153^The Code CopyIn [ThisDocument-ThisDocument]^' '* ----------------------------- Option Explicit
Sub GetR1C1() Dim CurrentCell As Cell, RowId As Integer, ColId As Byte With Selection If .Information(wdWithInTable) Then If .Cells.Count = 1 Then Set CurrentCell = .Cells(1) RowId = CurrentCell.RowIndex ColId = CurrentCell.ColumnIndex MsgBox "当前单元格行标:" & RowId & ",列号:" & ColId & "," & _ "单元格地址:" & Chr(64 + ColId) & RowId & "." End If End If End With End Sub '----------------------
|