ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

极度难解决的工程桩号问题!(衷心感谢zldccmx帮助解决)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-10-30 18:42 | 显示全部楼层 |阅读模式
在工作中经常要输入里程桩号,手工解决太慢了,是否有高人用VBA解决此问题呢?
1、能否实现在A2、B2(均为变数)中输入相应数据,在表中桩号拦里自动按C2(为变数)的间隔设置生成桩号文件 ;     
2、生成的桩号文件填满一张表后自动进入下一张表接着上张表桩号继续往后填桩号;
3、所有表生成桩号到按B2给定的终止桩号自动结束填充
4、填满一张表格后自动复制表格继续往后填
附件:

[ 本帖最后由 wsq7668 于 2008-11-3 18:11 编辑 ]

桩号问题.rar

3.25 KB, 下载次数: 67

TA的精华主题

TA的得分主题

发表于 2008-10-30 19:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
你的文件我下了
不过可能太专业了没看明白
你能不能举一个例子呢

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-10-30 19:42 | 显示全部楼层
感谢楼上朋友关心,我的问题就是在A1中输入桩号也就是表示公里的数字,K0+000就是某路的起点,K0+600就是600米,K1+060就是1.06公里,现在起点和终点都为不定的数字,我想生成按C2里设置的间隔数生成桩号文件(即,在C2中输入20桩号就是每隔20米一个,输入30就是间隔30米一个)比如,C2输入30,生成桩号就是K0+000,K0+030,K0+060。。。。C2输入20生成桩号就是K0+000,K0+020,K0+040。。。。附件里的表格只有一张表格做摸板,如果第一张填满桩号后就复制一张继续往下填,知道填完A2-B2中设置的长度为止。

[ 本帖最后由 wsq7668 于 2008-10-30 19:46 编辑 ]

TA的精华主题

TA的得分主题

发表于 2008-10-30 19:46 | 显示全部楼层
晕哦 K0+000 至 K1+600 是不是相隔1600m?如果间距是20的话,是不是801个桩号?

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-10-30 19:49 | 显示全部楼层
楼上的朋友,在我们工程上有几十公里的桩号都有,所以手工输入复杂容易错,1.6KM算很少了,里面的K1+600只是个变数

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-10-30 20:17 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2008-10-30 20:40 | 显示全部楼层
Sub macro1()
On Error Resume Next
Dim a As Long, b As Long, i As Long, n As Long, arr()
a = Val(Replace(Replace([a2], "K", ""), "+", ""))
b = Val(Replace(Replace([B2], "K", ""), "+", ""))
n = (b - a + 20) \ 400
Application.ScreenUpdating = False
For i = 0 To n
[D1:H31].Copy Cells(31 * i + 1, 4)
ReDim arr(19, 0)
For J = 0 To 19
If a + i * 400 + J * 20 <= b Then arr(J, 0) = "K" & (a + i * 400 + J * 20) \ 1000 & "+" & Right("000" & (a + i * 400 + J * 20) Mod 1000, 3)
Next
[D8].Offset(31 * i, 0).Resize(20) = arr
Next
Application.ScreenUpdating = True
MsgBox "OK"


End Sub

TA的精华主题

TA的得分主题

发表于 2008-10-30 21:56 | 显示全部楼层
桩号问题_by_zldccmx.rar (15.72 KB, 下载次数: 97)
给你做了一个双列的!
见附件!问题倒是挺简单,关键是算法!

TA的精华主题

TA的得分主题

发表于 2008-10-30 22:03 | 显示全部楼层
使用单元格格式:"K0+000"
假如桩标ZB为"柘",即令ZB="柘",然后
Range( 地址 ).NumberFormatLocal = ZB & "0+000"
之后,只要在以上单元格中输入100,即自动变成 柘0+100
输入600000,则自然为 柘600+000

TA的精华主题

TA的得分主题

发表于 2008-10-30 22:05 | 显示全部楼层
对楼主所从事的工程,老朽略知一二!
输变电公司 外线部 的吧
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 02:41 , Processed in 0.048371 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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