以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  vba  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=130678)

--  作者:18523500398
--  发布时间:2019/1/28 21:05:00
--  vba

求助版。

帮助没完全弄明白。

需求:我在前端有两种数据,第一种就是零散单个的,第二种就是个表格。

我想把零散单个的数据导出到excel模板中,并且还要把表格的数据导出去。我单独导出零散的数据或者单独导表格的内容没问题。

我把两个合起来就不行了。

以下内容为程序代码:

1 Dim result As DialogResult
2 result= messagebox.Show("请保证当前窗口的全部信息已经填写完毕或者显示完毕再进行生成SPC操作.","提示",MessageBoxButtons.OKCancel)
3 If result=DialogResult.OK Then
4 Dim App As New MSExcel.Application
5 App.Visible = True
6 Dim Wb As MSExcel.Workbook = App.WorkBooks.Open(ProjectPath & "Attachments\\spc计量型控制.xlsx")
7 Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
8 app.ScreenUpdating=False
9
10 \'工厂
11 Dim rg As MSExcel.Range = Ws.Cells(5,4)
12 rg.value=e.Form.Controls("TextBox1").text
13 \'部门
14 Dim rg1 As MSExcel.Range = Ws.Cells(5,11)
15 rg1.value=e.Form.Controls("TextBox2").text
16 \'零件号
17 Dim rg2 As MSExcel.Range = Ws.Cells(6,5)
18 rg2.value=e.Form.Controls("TextBox3").text
19 \'零件描述
20 Dim rg3 As MSExcel.Range = Ws.Cells(6,11)
21 rg3.value=e.Form.Controls("TextBox4").text
22 \'图纸编号
23 Dim rg4 As MSExcel.Range = Ws.Cells(7,5)
24 rg4.value=e.Form.Controls("TextBox5").text
25 \'工程更改水平
26 Dim rg5 As MSExcel.Range = Ws.Cells(7,11)
27 rg5.value=e.Form.Controls("TextBox6").text
28 \'模具编号
29 Dim rg6 As MSExcel.Range = Ws.Cells(8,5)
30 rg6.value=e.Form.Controls("TextBox7").text
31 \'模腔数
32 Dim rg7 As MSExcel.Range = Ws.Cells(8,11)
33 rg7.value=e.Form.Controls("TextBox8").text
34 \'描述
35 Dim rg8 As MSExcel.Range = Ws.Cells(9,5)
36 rg8.value=e.Form.Controls("TextBox9").text
37 \'单位
38 Dim rg9 As MSExcel.Range = Ws.Cells(9,12)
39 rg9.value=e.Form.Controls("TextBox10").text
40 \'尺寸规格
41 Dim rg10 As MSExcel.Range = Ws.Cells(10,4)
42 rg10.value=e.Form.Controls("NumericComboBox1").value
43 \'上公差
44 Dim rg11 As MSExcel.Range = Ws.Cells(10,6)
45 rg11.value=e.Form.Controls("NumericComboBox2").value
46 \'下公差
47 Dim rg12 As MSExcel.Range = Ws.Cells(10,8)
48 rg12.value=e.Form.Controls("NumericComboBox3").value
49 \'日期
50 Dim rg13 As MSExcel.Range = Ws.Cells(4,25)
51 rg13.value=Date.Now().tostring()
52 \'部门
53 app.screenupdating=True
54 Dim b As New XLS.Book(ProjectPath & "Attachments\\" & report & "spc计量型控制.xlsx")
55 Dim t As Table = Tables("spc")
56 Dim s As XLS.Sheet = b.Sheets(0)
57 Dim Style As XLS.Style = b.NewStyle() \'定义新样式
58 s.Cols(5).Style=Style
59 For c As Integer = 0 To t.Cols.Count -1 \'添加列标题
60 s(0, c).Value = t.Cols(c).Name
61 Next
62 For r As Integer = 0 To t.Rows.Count - 1 \'填入数据
63 For c As Integer = 0 To t.Cols.Count -1
64 s(r +1, c).Value = t.rows(r)(c)
65 Next
66 Next
67 b.Save(ProjectPath & "Attachments\\spc计量型控制.xlsx")
68 Dim Proc As New Process
69 Proc.File = (ProjectPath & "Attachments\\spc计量型控制.xlsx")
70 Proc.Start()
71 End If
72 \'表中有数据,把表中的数据导入到模板文件中


--  作者:18523500398
--  发布时间:2019/1/28 21:06:00
--  

把两种格式合并起来不知道怎么合并,求求ft版主解答。感谢感谢


--  作者:18523500398
--  发布时间:2019/1/28 21:07:00
--  
详细说明一下,因为excel模板中有分析图形,所以没有用报表类型的,就用了这种方式,在网上找了很多方法都没有成功,实在没办法不知道怎么弄了
--  作者:有点蓝
--  发布时间:2019/1/28 21:12:00
--  
请上传具体实例测试
--  作者:18523500398
--  发布时间:2019/1/29 9:31:00
--  
好的,我上传上来
--  作者:18523500398
--  发布时间:2019/1/29 9:32:00
--  

可以了。研究出来了。谢谢蓝版
[此贴子已经被作者于2019/1/29 9:38:53编辑过]

--  作者:18523500398
--  发布时间:2019/1/29 9:34:00
--  

那个单数据+表格导出的按钮不知道怎么写。

单数据导出到指定位置或者表格导出我用那样写的。

表格需要导出的数据我把excel标黄了的

 


--  作者:有点甜
--  发布时间:2019/1/29 9:41:00
--  

这个意思?

 

Dim result As DialogResult
result= messagebox.Show("请保证当前窗口的全部信息已经填写完毕或者显示完毕再进行生成SPC操作.","提示",MessageBoxButtons.OKCancel)
If result=DialogResult.OK Then
    Dim b As New XLS.Book(ProjectPath & "Attachments\\spc计量型控制.xlsx")
    Dim t As Table = Tables("表A")
    Dim s As XLS.Sheet = b.Sheets(0)
    Dim Style As XLS.Style = b.NewStyle() \'定义新样式
    s.Cols(5).Style=Style
    For r As Integer = 0 To t.Rows.Count - 1 \'填入数据
        For c As Integer = 0 To t.Cols.Count -1
            s(r+56, c+2).Value = t.rows(r)(c)
        Next
    Next
    b.Save(ProjectPath & "Attachments\\spc计量型控制.xlsx")
    Dim App As New MSExcel.Application
    App.Visible = True
    Dim Wb As MSExcel.Workbook = App.WorkBooks.Open(ProjectPath & "Attachments\\spc计量型控制.xlsx")
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
    app.ScreenUpdating=False
   
    \'工厂
    Dim rg As MSExcel.Range = Ws.Cells(5,4)
    rg.value=e.Form.Controls("TextBox1").text
    \'部门
    Dim rg1 As MSExcel.Range = Ws.Cells(5,11)
    rg1.value=e.Form.Controls("TextBox2").text
    \'零件号
    Dim rg2 As MSExcel.Range = Ws.Cells(6,5)
    rg2.value=e.Form.Controls("TextBox3").text
    \'零件描述
    Dim rg3 As MSExcel.Range = Ws.Cells(6,11)
    rg3.value=e.Form.Controls("TextBox4").text
    \'图纸编号
    Dim rg4 As MSExcel.Range = Ws.Cells(7,5)
    rg4.value=e.Form.Controls("TextBox5").text
    \'工程更改水平
    Dim rg5 As MSExcel.Range = Ws.Cells(7,11)
    rg5.value=e.Form.Controls("TextBox6").text
    \'模具编号
    Dim rg6 As MSExcel.Range = Ws.Cells(8,5)
    rg6.value=e.Form.Controls("TextBox7").text
    \'模腔数
    Dim rg7 As MSExcel.Range = Ws.Cells(8,11)
    rg7.value=e.Form.Controls("TextBox8").text
    \'描述
    Dim rg8 As MSExcel.Range = Ws.Cells(9,5)
    rg8.value=e.Form.Controls("TextBox9").text
    \'单位
    Dim rg9 As MSExcel.Range = Ws.Cells(9,12)
    rg9.value=e.Form.Controls("TextBox10").text
    \'尺寸规格
    Dim rg10 As MSExcel.Range = Ws.Cells(10,4)
    rg10.value=e.Form.Controls("NumericComboBox1").value
    \'上公差
    Dim rg11 As MSExcel.Range = Ws.Cells(10,6)
    rg11.value=e.Form.Controls("NumericComboBox2").value
    \'下公差
    Dim rg12 As MSExcel.Range = Ws.Cells(10,8)
    rg12.value=e.Form.Controls("NumericComboBox3").value
    \'日期
    Dim rg13 As MSExcel.Range = Ws.Cells(4,25)
    rg13.value=Date.Now().tostring()
    \'部门
    app.screenupdating=True
End If


--  作者:18523500398
--  发布时间:2019/1/29 10:00:00
--  

我试试看,我按照我的方法,excel出来过后乱了。excel的模板都不是自己设计好的那个了

 


--  作者:18523500398
--  发布时间:2019/1/29 10:11:00
--  
我这样弄也不成功,由于涉及到一些客户的隐私,我这边实际的项目无法上传上来。可以帮我看看嘛?