请高手指点 
我的工程设计用到 表格,大量重复的工作,打算 
1) 在一个  表格里(姑且叫它 表格A吧)输入数据(是用电量、用户电缆、使用系数等), 
2) 当完成输入后, 按一下某个按钮,然后程序读取表格A的数据,按预定的公式完成计算工作, 
3)输出到另外一个表格里面(叫它 表格B吧),最好能够用些好看的格式,便于打印, 
4) 如果在表格A 里面改动数据,可以再次启动按一下那个按钮,自动更新  表格B里的东西, 
请高手指点:这个软件用哪个方案可以实现?这样我会针对性的阅读有关的东西,自己摸索摸索~ 
我有些嵌入式编程的概念,觉得可以学习用VBA, VB来做,只能是简单的才可能学会,计算效率和速度都不是问题,只要这个过程能够软件化. 
在此先向您致谢,希望得到帮助 
[email protected] 
王辉
******
说说我怎样在 excel上干活的, 也许大家可以为我出个主意: 
1)我在'表格一'里面,每次输入一个'条目N'('名称'/'电流'/'路径长度'/'敷设方式'/'计量表数量'/'控制回路数'), 2) 到一个表格里面(比如叫'表A',也是 excel的)找相应'电流'下面对应的'电缆直径',找到了以后 
3) 填写到'表格二',这里对应'条目N'下,就多一个'电缆直径'的数块了,其他的内容就算简单的附加上吧 
4) 有了表二,就到一个单价表(比如叫'表B',也是 excel的)里,在相应的'电缆直径'和'敷设方式'下找单价,然后填写到 
5)表三的对应 '条目N'的内容里面 6)如果所有的条目输入完, 
'表一'就发展成 "设备表",可以输出打印为项目文件; 
'表二'就发展成 "电缆表",可以输出打印为项目文件; 
'表三'就发展成 "估价表",可以输出打印为项目文件; 
7) 操作时,可以单个'条目'做完以上所有步骤再做'下一个条目' 
8) 也可以一次一个表,按表一、表二、表三的步骤 
9) 条目的数量是不同的,时有增减,各个项目也不同的 
10)如果用VBA, VB, 希望在表一里面输入完, 其他工作就不用每次人工做了 
谢谢大家的时间 ! 

解决方案 »

  1.   

    其实在 EXcel 里面可以完成相同的操作.
    在Sheets1(表A)里面输入原始数据
    在Sheets2(表B)里面按要求制作一个表.再将里面的数据套用公式引用表A里面的数据就可以了.
      

  2.   

    说说我怎样在 excel上干活的, 也许大家可以为我出个主意: 
    1)我在'表格一'里面,每次输入一个'条目N'('名称'/'电流'/'路径长度'/'敷设方式'/'计量表数量'/'控制回路数'), 2) 到一个表格里面(比如叫'表A',也是 excel的)找相应'电流'下面对应的'电缆直径',找到了以后 
    3) 填写到'表格二',这里对应'条目N'下,就多一个'电缆直径'的数块了,其他的内容就算简单的附加上吧 
    4) 有了表二,就到一个单价表(比如叫'表B',也是 excel的)里,在相应的'电缆直径'和'敷设方式'下找单价,然后填写到 
    5)表三的对应 '条目N'的内容里面 6)如果所有的条目输入完, 
    '表一'就发展成 "设备表",可以输出打印为项目文件; 
    '表二'就发展成 "电缆表",可以输出打印为项目文件; 
    '表三'就发展成 "估价表",可以输出打印为项目文件; 
    7) 操作时,可以单个'条目'做完以上所有步骤再做'下一个条目' 
    8) 也可以一次一个表,按表一、表二、表三的步骤 
    9) 条目的数量是不同的,时有增减,各个项目也不同的 
    10)如果用VBA, VB, 希望在表一里面输入完, 其他工作就不用每次人工做了 
    ---------------------------------------------------------------------------------------------------------------用软件编程的路数,和这个有区别。
    你的 表1,表2,表3 信息是有冗余的,仅仅在输出时略有不同。在数据库编程中,不会用三张表。假定叫“项目表”:字段:'名称'/'电流'/'路径长度'/'敷设方式'/'计量表数量'/'控制回路数'/ '电缆直径'/ '单价'/ '总价'另外,你需要“电流-直径表”、“单价表”。假定你是采用 Access 数据库。比较简单的方法是采用一个 DataGrid 控件或 MSHFlexGrid来显示信息,用一系列 TextBox 编辑输入信息。当你在填入必要的初始数据后,按一个按钮,执行下列操作:Dim cn As New ADODB.Connection, rs As New ADODB.Recordset'求计算参数
    cn.Open "Provider=Microsoft.OLEDB.Jet.4.0;Data Source=your_DB_PathName;"
    Set rs = cn.Execute("Select Top 1 电缆直径 From 电流-直径表 Where 电流>=" & txtCurrent & " Order By 电缆直径")
    txtCableSize = rs!电缆直径
    Set rs = cn.Execute("Select 单价 From 单价表 Where 电缆直径=" & txtCableSize & " and 敷设方式='" & txtLayingMethod & "'")
    txtPrice = rs!单价
    txtCost = Val(txtPrice) * Val(txtRoutineLength)'插入新记录
    cn.Execute "Insert Into 项目表(名称,电流,路径长度,敷设方式,计量表数量,控制回路数,电缆直径,单价,总价) Value('" & txtName & "'," & _
        txtCurrent & "," & txtRoutineLength & ",'" & txtLayingMethod & "'," & txtNumMeter & "," & txtLoops & "," & txtCableSize _
        & "," & txtPrice & "," & txtCost & ")"Set rs = Nothing
    cn.Close
    Set cn = Nothing
      

  3.   

    首先很谢谢你的回复,而且很对路的:
    我这些天在图书馆泡了几回,Excel2003 BVA Programming by Julia Kelly 那个书讲了一些:
    1) 在 表1里面定位第一个记录, 在固定的 offset上读取输入(电流)
    2)在查对表里面(表2)使用类似于 cn.Execute("Select Top 1 电缆直径 From 电流-直径表 Where 电流>=" & txtCurrent & " Order By 电缆直径") 找到那个字段(电缆直径)
    3)可以插入到扩展的表1,或另开一个表3;插入其中,同时拷贝必要的字段
    4) 把以上的过程放在一个loop里面,直到表1的内容结束
    5)我发现VBA中的Range Object 有个methods,是完成不固定行数的表格的关键,比如在 Sub selectRanges()
    Dim MyRange As Range
    Set MyRange = Range("c12").CurrentRegion
    MyRange.Select
    End Sub 中的MyRange具有这个方便的功能:它就成为了c12附近的所有连续记录的总和了,对它继续操作就很方便了
    6) 由于公司里的同事基本只用excel,所以,我还是限于excel环境了。
    如果大家还有好的办法, 请更多的介绍
      

  4.   

    5)我发现VBA中的Range Object 有个CurrentRegion method/property,是完成不固定行数的表格的关键,比如 
    Sub selectRanges() 
    Dim MyRange As Range 
    Set MyRange = Range("c12").CurrentRegion 
    MyRange.Select 
    End Sub 
    中的 MyRange就成为了c12附近的所有连续记录的总和了,它有许多有用的操作,很方便了