| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3876 人关注过本帖
标题:求vb将VSFlexgrid或MSFlexGrid表格中b列各单元格中的数据坼分到每一个单元格 ...
只看楼主 加入收藏
vbcaonia
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2016-5-4
结帖率:96.67%
收藏
已结贴  问题点数:20 回复次数:16 
求vb将VSFlexgrid或MSFlexGrid表格中b列各单元格中的数据坼分到每一个单元格中的vb程序
1、单元格b5开始的b列各单元格中填有不同数字, 每二个数字间空一格,

2、b列各单元格从上到下,数据逐个分开,分开后的数字依次填充在同行c5开始的各个单元格(每个单元格一个数据),即b5分开后的数据填充到 c5 行各个单元格,即b6行分开后的数据填充到 c6 行各个单元格...
如:b5的数据坼分到:c5、d5、e5、f5
    b6的数据坼分到:c6、d6、e6、f6
             ......

下面的程序是我用excel做的,就是想在VSFlexgrid或MSFlexGrid表格中实现这个目的:

Sub 按钮2_Click()
Range("c5:k750004").Clear 'Contents
Dim x As Long
arr = Range("b5:b" & Range("b1048576").End(xlUp).Row)
For x = LBound(arr) To UBound(arr)
    brr = Split(Trim(arr(x, 1)), " ")
    ReDim crr(UBound(brr))
    For j = 0 To UBound(brr)
        crr(j) = Val(brr(j))
    Next
Range("e" & x + 4).Resize(1, UBound(crr) + 1) = crr
Next
End Sub

1.rar (37.36 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2016-5-19 09:45编辑过]

搜索更多相关主题的帖子: excel 
2016-05-18 22:43
hjxlj
Rank: 10Rank: 10Rank: 10
来 自:江西
等 级:贵宾
威 望:14
帖 子:292
专家分:1519
注 册:2013-6-25
收藏
得分:0 
楼主这样的描述不好理解,建议截个图上来

本人QQ:775420425
2016-05-19 00:38
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:938
专家分:5244
注 册:2015-8-10
收藏
得分:0 
跟你excel的做法可以说是完全一样的,只是因为对象不同代码有点差异而已。不清楚你什么地方有问题。
2016-05-19 08:35
vbcaonia
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2016-5-4
收藏
得分:0 
回复 2楼 hjxlj
附件就是
2016-05-19 09:29
vbcaonia
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2016-5-4
收藏
得分:0 
回复 3楼 xiangyue0510
版主你好,就VSFlexGrid而言:主要是第1句输入到数组和最后一句数组输出,麻烦版主修改修改,谢谢!

1、第一句输入这样写不知对不对:arr=VSFlexGrid1.Cell(flexcpText, 5, 2, VSFlexGrid1.Rows - 1, 2);


2、最后一句数组输出:Range("e" & x + 4).Resize(1, UBound(crr) + 1) = crr 中的Range("e" & x + 4)用什么代替或整句修改;

这样好像不对:VSFlexGrid1.Cell(flexcpText, 1, 3).Resize(1, UBound(crr) + 1) = crr

3、For x = LBound(arr) To UBound(arr)这句好像不能用显示类型不匹配?


[此贴子已经被作者于2016-5-19 10:42编辑过]

2016-05-19 09:44
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:938
专家分:5244
注 册:2015-8-10
收藏
得分:0 
Excel对象和VSFlexGrid对象的属性、事件、子对象肯定是不同的

http://wenku.baidu.com/link?url=mvHEZEtOEuBDR-drc_bw9w694y8erCEoU7QPj2nhZ8CUVO-btd9cC0iz9xfaEq0udi8ojaJhb4I4Bd8lb-PNjDkkNMueG0_4lPRMuayllM_
1、第一句输入这样写不知对不对:arr=VSFlexGrid1.Cell(flexcpText, 5, 2, VSFlexGrid1.Rows - 1, 2);
2、最后一句数组输出:Range("e" & x + 4).Resize(1, UBound(crr) + 1) = crr 中的Range("e" & x + 4)用什么代替或整句修改;
3、For x = LBound(arr) To UBound(arr)这句好像不能用显示类型不匹配?

Excel支持Range,但是VSFlexGrid未必支持这样的操作
虽然没有用过VSFlexGrid,但是好像Cell只有两个参数吧,行、列
百度了一段,简单的修改了一下。 列宽你自己百度一下吧

程序代码:
for i=1 to grid1.rows-1

 brr =split(grid1.textmariy(i,0)," ")   '第一格是放你原始数的
 k=1

 For j= lbound(brr) to ubound(brr)
  if trim(brr(j))<>"" then 
      grid1.textmariy(i,k)=brr(j)    '这里注意,如果一行拆分出来的数值个数不同的话,要用最大的。如果不确定,那就要加代码判断并调整列数
      k=k+1
  End if     

 Next j
next i
2016-05-19 16:05
vbcaonia
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2016-5-4
收藏
得分:0 
回复 6楼 xiangyue0510
版主你好,按照你的说的(当然我没有完全理解)我把整个程序写成这样:
Private Sub Command2_Click()
Dim textmariy, brr(), crr, i As Long, j As Long, k As Long
textmariy = VSFlexGrid1.Cell(flexcpText, 1, 0, 4, 0)
For i = 1 To 4
 brr = Split(VSFlexGrid1.textmariy(i, 0), " ") '第一格是放你原始数的
k = 1
 For j = LBound(brr) To UBound(brr)
  If Trim(brr(j)) <> "" Then
      VSFlexGrid1.textmariy(i, k) = brr(j) '这里注意,如果一行拆分出来的数值个数不同的话,要用最大的。如果不确定,那就要加代码判断并调整列数
      k = k + 1
  End If
 Next j
Next i
End Sub

这句有问题:brr = Split(VSFlexGrid1.textmariy(i, 0), " ")提示对象和属性不支持

麻烦你再看看并修改,或用MSFlexGrid来一段,   谢谢!


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

2016-05-19 17:10
hjxlj
Rank: 10Rank: 10Rank: 10
来 自:江西
等 级:贵宾
威 望:14
帖 子:292
专家分:1519
注 册:2013-6-25
收藏
得分:0 
回复 7楼 vbcaonia
还没有解决吗?我也是醉了。

本人QQ:775420425
2016-05-20 00:51
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:938
专家分:5244
注 册:2015-8-10
收藏
得分:0 
回复 7楼 vbcaonia
VSFlexGrid1.TextMatriy 改成VSFlexGrid1.TextMatrix 我是百度上找了一段例子给你改的,可能是修改的时候弄错了。你再试试吧
我昨天的意思是,要用这个控件必须好好的看一下控件属性、事件。
VSFlexGrid的属性方法,好好看一下。
http://wenku.baidu.com/link?url=m28SgvC5Zlk9agQJ6HO2hwEfyG59ebvsQ7WkbjY2oCM3-DESyWyRxEuD9MMziGlfiyZkTuPk1xmokwHRHg4VvSkMMhOFcfQtWxxP5fUw1Qu
2016-05-20 09:05
vbcaonia
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2016-5-4
收藏
得分:0 
回复 9楼 xiangyue0510
谢谢版主指点!
2016-05-20 11:06
快速回复:求vb将VSFlexgrid或MSFlexGrid表格中b列各单元格中的数据坼分到每一个 ...
数据加载中...
 
   



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

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