Foxtable(狐表)用户栏目专家坐堂 → vba


  共有3846人关注过本帖树形打印复制链接

主题:vba

帅哥哟,离线,有人找我吗?
18523500398
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:178 积分:1150 威望:0 精华:0 注册:2018/9/17 11:16:00
vba  发帖心情 Post By:2019/1/28 21:05:00 [只看该作者]

求助版。

帮助没完全弄明白。

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

我想把零散单个的数据导出到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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:178 积分:1150 威望:0 精华:0 注册:2018/9/17 11:16:00
  发帖心情 Post By:2019/1/28 21:06:00 [只看该作者]

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


 回到顶部
帅哥哟,离线,有人找我吗?
18523500398
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:178 积分:1150 威望:0 精华:0 注册:2018/9/17 11:16:00
  发帖心情 Post By:2019/1/28 21:07:00 [只看该作者]

详细说明一下,因为excel模板中有分析图形,所以没有用报表类型的,就用了这种方式,在网上找了很多方法都没有成功,实在没办法不知道怎么弄了

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/1/28 21:12:00 [只看该作者]

请上传具体实例测试

 回到顶部
帅哥哟,离线,有人找我吗?
18523500398
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:178 积分:1150 威望:0 精华:0 注册:2018/9/17 11:16:00
  发帖心情 Post By:2019/1/29 9:31:00 [只看该作者]

好的,我上传上来

 回到顶部
帅哥哟,离线,有人找我吗?
18523500398
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:178 积分:1150 威望:0 精华:0 注册:2018/9/17 11:16:00
  发帖心情 Post By:2019/1/29 9:32:00 [只看该作者]


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

 回到顶部
帅哥哟,离线,有人找我吗?
18523500398
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:178 积分:1150 威望:0 精华:0 注册:2018/9/17 11:16:00
  发帖心情 Post By:2019/1/29 9:34:00 [只看该作者]

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

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

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:178 积分:1150 威望:0 精华:0 注册:2018/9/17 11:16:00
  发帖心情 Post By:2019/1/29 10:00:00 [只看该作者]

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
18523500398
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:178 积分:1150 威望:0 精华:0 注册:2018/9/17 11:16:00
  发帖心情 Post By:2019/1/29 10:11:00 [只看该作者]

我这样弄也不成功,由于涉及到一些客户的隐私,我这边实际的项目无法上传上来。可以帮我看看嘛?

 回到顶部
总数 23 1 2 3 下一页