Office中国论坛/Access中国论坛

标题: 如何根据总表中某列的内容自动拆分为格式与总表一样的明细表 [打印本页]

作者: wbjjzhu    时间: 2005-1-8 19:36
标题: 如何根据总表中某列的内容自动拆分为格式与总表一样的明细表
在“格式”工作表中有一“区域”列,我想根据“区域”列中的不同内容分为几个格式一样的明细表,新建的工作表名称以实际的区域命名:如“南1区销售部”

这一过程如何用VBA编程实现,请各位版主和高手帮忙!!!

另外,在“输入”表中有一列材料编码,原来是10位数字:如1010131313,如何在将其自动转换为取前7位数字:如:1010131

[attach]8508[/attach]


作者: 老鬼    时间: 2005-1-8 23:10
不知道你为什么要这么做,因为不论是打印还是浏览,好像都没那样做的必要。要的话也不难,只是循环创建和复制而已。至于取前7位数字,用LEFT函数就可以了。
作者: wbjjzhu    时间: 2005-1-9 00:04
因为月末要打印出来作为各个区域和部门分帐的依据,当然在明细表整理出来后,还要对后面没有数据的列进行删除,以适合打印。至于提取前7位数,在工作表中可以用left()函数解决,但这样做要在后面的空列输入公式,然后公式得出的数据复制到A列,这个过程比较麻烦(因为在“格式”表中的公式都是引用这些固定列),我是想在原A列中的单元格直接转换得到。但在VBA中使用application.worksheetfuction.left()工作表函数却无效。因为“输入”表中的数据都是从数据库中导出来的,每月都不同。从“输入”表转换成“格式”表的格式,再到细分各个部门区域,手工操作过程比较烦复,首先要把“输入”表的A列取前7位数,再把不重复的单据号码复制到“格式”表的单据号码列,再分部门区域。我 想把这个重复而烦锁的过程变得简单一点,因些就有1楼所述的转换要求
作者: 老鬼    时间: 2005-1-9 01:39
正因为只是要打印,所以根本没有一页一页建表的必要,只要用自动筛选打印一下就行了。至于提取数字的问题,帮你编了一个:Sub Macro2()

Dim myrng As Range

Set myrng = Range(Cells(2, 1), Cells([A65536].End(xlUp).Row, 1))

For Each CL In myrng

    CL.Value = Left(CL.Value, 7)

Next CL

End Sub






欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3