| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3905 人关注过本帖
标题:求vb将VSFlexgrid或MSFlexGrid表格中b列各单元格中的数据坼分到每一个单元格 ...
只看楼主 加入收藏
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:20 
刚刚看到这个问题,给你做一个,稍等。
图片附件: 游客没有浏览图片的权限,请 登录注册
没有点击【转移】按钮的界面
图片附件: 游客没有浏览图片的权限,请 登录注册
点击【转移】按钮的界面
启动与通用部分:
程序代码:
Dim AA
Private Sub Form_Load()
AA = Array("1 2 3 4", "5 9 10 11", "7 8 12 32", "99 10 12 77")
With MSFlexGrid1
    .Cols = 1
    .Rows = 5
    .TextMatrix(0, 0) = "A"
    .ColWidth(0) = 1200
    For I = 1 To 4
    .TextMatrix(I, 0) = AA(I - 1)
    Next I
End With
With MSFlexGrid2
    .Cols = 1
    .Rows = 1
End With
End Sub

【转移】按钮单击事件:
程序代码:
Private Sub Command1_Click()
Dim BB, CC, DD, EE
BB = Split(MSFlexGrid1.TextMatrix(1, 0), " ", -1, 1)    '使用Split将MSFlexGrid1第一列数据分解到数组BB中,下同
CC = Split(MSFlexGrid1.TextMatrix(2, 0), " ", -1, 1)
DD = Split(MSFlexGrid1.TextMatrix(3, 0), " ", -1, 1)
EE = Split(MSFlexGrid1.TextMatrix(4, 0), " ", -1, 1)
MSFlexGrid2.Clear
With MSFlexGrid2
    .Cols = 5
    .Rows = 5
    .TextMatrix(0, 0) = "A"
    .TextMatrix(0, 1) = "B"
    .TextMatrix(0, 2) = "C"
    .TextMatrix(0, 3) = "D"
    .TextMatrix(0, 4) = "E"
    .ColWidth(0) = 1200
    .ColWidth(1) = 700
    .ColWidth(2) = 700
    .ColWidth(3) = 700
    .ColWidth(4) = 700
    For I = 1 To 4
    .TextMatrix(I, 0) = AA(I - 1)  '循环列,添加第一列数据
    .TextMatrix(1, I) = BB(I - 1)  '循环行,添加第一行数据
    .TextMatrix(2, I) = CC(I - 1)  '循环行,添加第二行数据
    .TextMatrix(3, I) = DD(I - 1)  '循环行,添加第三行数据
    .TextMatrix(4, I) = EE(I - 1)  '循环行,添加第四行数据
    Next I
End With
End Sub


[此贴子已经被作者于2016-5-20 17:15编辑过]


请不要选我!!!
2016-05-20 16:32
vbcaonia
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2016-5-4
收藏
得分:0 
回复 11楼 ZHRXJR
老师你好。学习了你的代码,我想问一下:AA = Array("1 2 3 4", "5 9 10 11", "7 8 12 32", "99 10 12 77")能否改成区间赋值即将b列从b5开始到b列有数据的地方为止赋值到数组(像excel:arr = Range("b5:b" & Range("b1048576").End(xlUp).Row)),实际运用中b列的数据有600-900万行,因而不可能逐个输入、输出,我求这个代码的目的就是想把excel的大量数据移到vb来处理(目前没有找到好的表格控件就只好先学MSFlexGrid),因而麻烦老师把这个程序按b列有几百万行数据的要求来写,谢谢!

[此贴子已经被作者于2016-5-20 21:20编辑过]

2016-05-20 21:18
vbcaonia
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2016-5-4
收藏
得分:0 
回复 11楼 ZHRXJR
老师你好,根据你的代码提示,我已把它写成循环式,成功啦:
Private Sub Command2_Click()
Dim BB, i As Integer, k As Integer, m As Integer
m = 1
For i = 1 To 4
BB = Split(VSFlexGrid1.TextMatrix(i, 0), " ") '使用Split将MSFlexGrid1数据分解到数组BB中
For k = 0 To UBound(BB)
VSFlexGrid1.TextMatrix(m, k + 1) = BB(k) '输出结果
  Next
   m = m + 1
   Next
End Sub


[此贴子已经被作者于2016-5-20 23:25编辑过]

2016-05-20 22:32
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:0 
回复 13楼 vbcaonia
祝贺你,你原来说的是一个列分解,仅仅按你的要求做的,如果你是Excel导入,也应该不是问题,但难度稍稍大一点而已。

请不要选我!!!
2016-05-20 23:57
vbcaonia
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2016-5-4
收藏
得分:0 
回复 14楼 ZHRXJR
老师你好,请教一下,在标签1中显示第二列填有数据行的总行数怎样写,谢谢!


另外关于数据库导入数据的问题,麻烦老师有时间看看:

为什么记事本数据txt导入到Access数据库时数据被分解
1、数据库中建有一个表, 表名为:表1,表1中有1个字段,其名为:数据1
2、现将txt文本数据按行导入即数据不分割,每一行txt文本数据在表1占据一个单元格也就是将txt文本数据复制到字段1。

如面数据
2 06 11
09 13 15
02 05 07
08 09 17


3、用下全面的程序导入后,数据被分解了,请老师修改,谢谢!

Private Sub Command9_Click()
Dim g
Dim Con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\vb-数据库学习\db11.mdb;Persist Security Info=False"
Con.Open
 Open App.Path & "\AA.txt" For Input As #1
Do While Not EOF(1)
Input #1, g
Con.Execute ("insert into 表1(数据1) values( " & g & ")")
Loop
Close #1
ErrHandler:
' 用户按了“取消”按钮
Exit Sub

End Sub


图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2016-5-21 12:03编辑过]

2016-05-21 10:50
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:0 
程序代码:
Private Sub Command9_Click()
Dim g As String
Dim Con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\vb-数据库学习\db11.mdb;Persist Security Info=False"
Con.Open

 Open App.Path & "\AA.txt" For Input As #1
Do While Not EOF(1)
Input #1, g
Con.Execute ("insert into 表1(数据1) values( '" & g & "')")
Loop
Close #1
Exit Sub
ErrHandler:

 用户按了“取消”按钮
End Sub

这样就应该可以了,因为 values( " & g & ")是按数字处理的,修改为上面的,就是字符串。

请不要选我!!!
2016-05-21 17:25
vbcaonia
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2016-5-4
收藏
得分:0 
回复 16楼 ZHRXJR
老师你好,经测试程序满足要求,谢谢!
2016-05-21 21:00
快速回复:求vb将VSFlexgrid或MSFlexGrid表格中b列各单元格中的数据坼分到每一个 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.054798 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved