ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 菊石泽露

如何用word公式实现计算两点间长度的值?又有怪事!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-2-11 18:29 | 显示全部楼层
QUOTE:
以下是引用菊石泽露在2007-2-11 17:30:47的发言:

单元格定位让我很苦恼,加减法都算不对了!

前一个得1770的公式(=(E5-E4))对了,后面的(=(E6-E5)),(=(E7-E6))等乍就不对了呢?朋友们帮忙呀!老大没空,老几都行呀?三人行,给我帮忙的都是我师呀!


[此贴子已经被作者于2007-2-11 19:52:06编辑过]
eCxv79sc.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-2-11 20:14 | 显示全部楼层

太感谢了!

每一行都有用。我只是把不像干数据删除了才成这个样子。

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-2-11 20:44 | 显示全部楼层

果然对了,不知有没有不用数回车符的窍门,我经常数好多遍才数对呀。

谢谢了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-2-11 21:20 | 显示全部楼层

报告老大,CTRL+SHIFT+F9对单个域可以用,但对整篇文档有域一下取消域引用只留结果不行。

还有无良策?

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-2-11 22:28 | 显示全部楼层
或者高手可用vba编程实现整篇文档解除域的链接。请朋友们想想办法!

TA的精华主题

TA的得分主题

发表于 2007-2-11 22:58 | 显示全部楼层
QUOTE:
以下是引用菊石泽露在2007-2-11 20:44:36的发言:

果然对了,不知有没有不用数回车符的窍门,我经常数好多遍才数对呀。

谢谢了!

一般来说,用鼠标点击某单元格,在状态栏中显示的行数为该单元格的行号,再看水平标尺可算出其列数。但有时也不一致(楼主的表格就有此情况),主要原因估计是进行了复杂的单元格合并,致使原来特定的行在多次单元格合并后实际不复存在,不知列数是否有不一致的情形。至于其规律性,还难以把握,曾发现在单元格合并过程中,表格的行数竟意外增加(并无插入行)的情形。

另,用Ctrl+Shift+F9取消域的链接好像对表格有限制,只对某个特定的单元格操作才有效,不知有何妙法。

[此贴子已经被作者于2007-2-11 23:08:33编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-2-11 23:19 | 显示全部楼层

我2月4日注册此坛,此前对宏、域、vba一无所知。自觉来此很有收获,但水平实在有限!

设想vba或宏应该可以解决此问题,但因知识欠缺,尚感无从下手!

谢谢sylun兄回复和帮助,老大和其余3位斑竹若是有空且不嫌太小儿科,斑头们有烦大架了!

TA的精华主题

TA的得分主题

发表于 2007-2-12 06:00 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
QUOTE:
以下是引用菊石泽露在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
'----------------------


TA的精华主题

TA的得分主题

发表于 2007-2-12 06:39 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

刚才看了楼主的最近的一些回贴,以及上面的这些情况,我说一下动态引用,动态引用是类似于EXCEL中的一种单元格填充功能,也就是其行号/列号递增递减时可以采用的,如果象楼主这种情况下的计算,意义不大,还不如直接使用EXCEL或者WORD中的单元格相减的方法,因为你的运算单元格的地址基本上是没有规律的,我用上面的代码测试了一下,你的E列:

E3

E4

E18

E28

E37

而你需要的结果是:E4-E3,E18-E4,E28-E18,E37-E29,3,4,18,28,37之间规律似乎看不太出。

如果你需要:

E4-E3

E5-E4

E6-E5

E7-E6

……

可以使用以下公式:

域代码为: { SET Start { SEQ Z } }{ = { QUOTE "E{ =Start +3}" }-{ QUOTE "E{= Start+2 }"} }

个中道理你可慢慢消化。

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-2-12 11:26 | 显示全部楼层

得老大亲自回复,荣幸之至!

我一定消化!

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 16:03 , Processed in 0.032798 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表