ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何确定当前段落在哪个分栏中?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-9-16 18:26 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 tan133 于 2014-9-18 23:45 编辑

整个最简化的吧,

WORD将文档分为了宽度不等的左中右三个分栏各栏宽度不一
任意选中一段文字,假设这段文字只在同一页的某一个分栏内
如何确定其在左中右哪个分栏中???


TA的精华主题

TA的得分主题

发表于 2014-9-16 21:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
表述的真混乱

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-16 23:14 | 显示全部楼层
本帖最后由 tan133 于 2014-9-18 23:46 编辑

已更新,这下没有理解问题了吧?

TA的精华主题

TA的得分主题

发表于 2014-9-17 10:00 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
完全看不懂你在说什么!!!
逻辑混乱
请先理顺自己的逻辑吧

TA的精华主题

TA的得分主题

发表于 2014-9-17 10:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
问题其实很简单,只不过楼主没表述清楚。就是:
两段文字,
如果字数相加少于n,就合成一段;
如果字数相加大于n,就不合成。(例子2中楼主莫名其妙的将逗号去掉了)
具体n是几,楼主根据需要而定。

不是神马操作都要VBA,
替换就可以。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-17 12:11 | 显示全部楼层
本帖最后由 tan133 于 2014-9-18 23:51 编辑
周星骋 发表于 2014-9-17 10:20
问题其实很简单,只不过楼主没表述清楚。就是:
两段文字,
如果字数相加少于n,就合成一段;

大体上是这个意思,不过,如果有分栏,还是不好办啊

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-18 23:49 | 显示全部楼层
本帖最后由 tan133 于 2014-9-18 23:51 编辑

这下,精简得够简单了吧?

TA的精华主题

TA的得分主题

发表于 2014-10-15 10:39 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
楼主最初的附件没见了,如果还在的话,大概用如下的替换办法能实现:
01.png

例子.rar (22.15 KB, 下载次数: 4)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-20 14:56 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 tan133 于 2014-10-20 15:07 编辑
周星骋 发表于 2014-10-15 10:39
楼主最初的附件没见了,如果还在的话,大概用如下的替换办法能实现:


非常感谢,按你的测试文件,的确有效,
不过,因为,说半天老师没懂,我只是把模型简化了
真实的应用场景,比这要复杂的多,比如,可能有图片(见附件例   例子.rar (7.04 KB, 下载次数: 8)
我希望是,左分栏不合并,右分栏合并,似乎,就有点麻烦哦

能不能麻烦你解释下的意思?
([!^13[!^n]{1,100})
(^13)
([!^13[!^n]{1,100})
(^13^n)
另,给个建议,希望你别生气
你下次给帮助的时候,能不能把那个字符发一下?
我是放大了图片才看清第二个是[而不是(

TA的精华主题

TA的得分主题

发表于 2014-10-21 16:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 周星骋 于 2014-10-21 16:47 编辑
tan133 发表于 2014-10-20 14:56
非常感谢,按你的测试文件,的确有效,
不过,因为,说半天老师没懂,我只是把模型简化了
真实的应用 ...


看到你回复别的帖子里,你懂通配符的呀。
我在8楼给的例子中,多了两处“[!”,不过也能用。
应该是:
  1. ([!^13^n]{1,10})(^13)([!^13^n]{1,10})([^13^n])
复制代码
第1个表达式([!^13^n]{1,10})表示:
不是回车,也不是分栏符,1到10个字。

第2个表达式(^13)表示:
一个回车。

第3个表达式([!^13^n]{1,10})表示:
不是回车,也不是分栏符,1到10个字。

第4个表达式([^13^n])表示:
回车或者分栏符。

总的意思是:
以10个字为例,
如果上下两行分别都不超过10个字,那么就将上一行的回车去掉,使两行连起来。
如果上下两行只要有一行超过10个字,就不连。
如果上下两行是分栏符隔开的,不管多少个字,也不连。

所以,
上一行就是 非回车、非分栏符开头,1至10个字,到回车结束:
([!^13^n]{1,10})(^13)

下一行就是 非回车、非分栏符开头,1至10个字,到回车或分栏符结束:
([!^13^n]{1,10})([^13^n])

替换时,将上一行的回车 (^13) 替换掉就行了。

看到你9楼的附件,有图片,本来想在 非回车、非换行符 里加个 非图片,即
[!^13^n^g]
可惜提示 ^g 不能用于通配符。



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

本版积分规则

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

GMT+8, 2025-1-16 16:58 , Processed in 0.027830 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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