求助一段高难度代码!!!

kangguiwen 2008-04-03 12:57:09
我想比较excel中的数据,例如:我想比较表中a列(cell) c列(bcch) d列(tch)e列(tch1)f列(tch2) 每列都有数据,他们相互减,只要差为0或1或-1都要返回。如果两列中都为空,则不返回。
谢谢了,高手们,小弟期待中呀。
...全文
227 31 打赏 收藏 举报
写回复
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
我也想知道,正在找這方面的資料~~~~~
knowledge_Is_Life 2008-04-30
  • 打赏
  • 举报
回复
接分是王道!
东方之珠 2008-04-11
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 kangguiwen 的回复:]
还不明白各位高手的意思,我的意思是,在上诉中我提到的列,任意两列相减,求绝对值是0 or 1
[/Quote]

任意2列相减,在13楼基础上的For i = 1 To 6 的外面再加一个循环,有N行就循环N次,这完全符合你的要求!
lsftest 2008-04-11
  • 打赏
  • 举报
回复
就你在26楼给出的数据,你希望得出什么样的结果?详述判断依据。
kangguiwen 2008-04-09
  • 打赏
  • 举报
回复
CI BCCH TCH1 TCH2 TCH3 TCH4 TCH5 TCH6 TCH7 TCH8 TCH9 TCH10 TCH11
14001 6 37 51
14002 30 61 92
14003 19 81 79
14031 3 34 64 80
14032 13 44 70 85 41 30 67 5
14033 23 60 54 90
14061 5 31 49 67
14062 21 37 55 71 82 91
14063 13 75 43 61 84 93
kangguiwen 2008-04-09
  • 打赏
  • 举报
回复
不好意思哦,cbm666。我的意思是将下面的bcch--tch11之间的数据数据进行对比,对于bcch--tch11之间相邻或相等的数据返回,下面只是excel表中的一部分,如果CI部分相等则比较这两个CI Bcch--Tch11之间的数据,返回bcch--tch11之间相邻或相等的数据。
CI BCCH , TCH1 ,TCH2 ,TCH3 ,TCH4 ,TCH5 ,TCH6 ,TCH7 ,TCH8 ,TCH9 ,TCH10 ,TCH11
14001 , 6 , 37 ,51
14002 , 30 , 61 ,92
14003 , 19 , 81 ,79
14031 , 3 , 34 ,64 ,80
14032 , 13 , 44 ,70 ,85 ,41 ,30 ,67 ,5
14033 , 23 , 60 ,54 ,90
14061 , 5 , 31 ,49 ,67
14312 , 15 , 37
14312 , CBCCH , 58 ,72
kangguiwen 2008-04-09
  • 打赏
  • 举报
回复
不好意思哦,cbm666。我的意思是将下面的bcch--tch11之间的数据数据进行对比,对于bcch--tch11之间相邻或相等的数据返回,下面只是excel表中的一部分,如果CI部分相等则比较这两个CI Bcch--Tch11之间的数据,返回bcch--tch11之间相邻或相等的数据。
CI BCCH TCH1 TCH2 TCH3 TCH4 TCH5 TCH6 TCH7 TCH8 TCH9 TCH10 TCH11
14001 6 37 51
14002 30 61 92
14003 19 81 79
14031 3 34 64 80
14032 13 44 70 85 41 30 67 5
14033 23 60 54 90
14061 5 31 49 67
14312 15 37
14312 CBCCH 58 72

波导终结者 2008-04-09
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 kangguiwen 的回复:]
还不明白各位高手的意思,我的意思是,在上诉中我提到的列,任意两列相减,求绝对值是0 or 1
[/Quote]
我们讨论的这些结果,贴的这些代码难道还不符合你的要求吗?
cbm6666 2008-04-09
  • 打赏
  • 举报
回复
你当然得不到答案, 可能没人真正看懂你要的是什么 ? 问你问题你也不回答......真是........
kangguiwen 2008-04-09
  • 打赏
  • 举报
回复
还不明白各位高手的意思,我的意思是,在上诉中我提到的列,任意两列相减,求绝对值是0 or 1
东方之珠 2008-04-05
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 alifriend 的回复:]
13楼的代码会重复计算吧,而且
If (ExcelData(i) <> 0) And (ExcelData(j) <> 0) And (ExcelData(i) <> ExcelData(j)) Then
不能减自己应该是i <> i吧

For i = 1 To 5
For j = i+1 To 6
这样可以不用判断是否重复或自减

If Abs(Data) = 1 Or Data = 0 Then
可以改成 Abs(Data) <=1
[/Quote]


i<>j 我已经在15楼改了。当时我就发现了!


For i=1 To 5
For j=i+1 To 6
这样可以不用判断是否重复或自减。这个你说对了!


If Abs(Data)=1 Or Data=0 Then
可以改成 Abs(Data) <=1 这个你错了!
Abs(Data)=1 Or Data=0和Abs(Data)<=1是两回事
人家只要两两相减结果为0,1,-1的就输出;而Abs(Data)<=1,两两相减,结果可以为0.5,-0.5吧,还不止!!!








东方之珠 2008-04-05
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 alifriend 的回复:]
引用 18 楼 chenjl1031 的回复:
i <>j 我已经在15楼改了。当时我就发现了!

Abs(Data)=1 Or Data=0和Abs(Data) <=1是两回事
人家只要两两相减结果为0,1,-1的就输出;而Abs(Data) <=1,两两相减,结果可以为0.5,-0.5吧,还不止!!!

不好意思,别激动,我回的时候没刷新,没看到你回贴,又不能修改,抱歉。

红字问题确实有道理,我习惯性的认为运算的数只有整数,还是你比较严谨。
[/Quote]



我又看了一下代码,其实你说的也有道理。单纯就整型来看:Abs(Data)=1 Or Data=0和Abs(Data)<=1的确是一回事。我这里少说了一句话,Excel数据类型楼主可以改,一旦计算的代码成型后可以不必修改,这样适用范围宽一些!这样就只能用:Abs(Data)=1 Or Data=0
嗷嗷叫的老马 2008-04-05
  • 打赏
  • 举报
回复
别激动别激动别激动.....

小心鼻血.......
波导终结者 2008-04-05
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 chenjl1031 的回复:]
i <>j 我已经在15楼改了。当时我就发现了!

Abs(Data)=1 Or Data=0和Abs(Data) <=1是两回事
人家只要两两相减结果为0,1,-1的就输出;而Abs(Data) <=1,两两相减,结果可以为0.5,-0.5吧,还不止!!!
[/Quote]
不好意思,别激动,我回的时候没刷新,没看到你回贴,又不能修改,抱歉。

红字问题确实有道理,我习惯性的认为运算的数只有整数,还是你比较严谨。
cbm6666 2008-04-04
  • 打赏
  • 举报
回复
a-b = 1 那如果是 b-a 呢 ? 相互减, 我也想知道结果是如何比较的 ?
熊孩子开学喽 2008-04-04
  • 打赏
  • 举报
回复
比如:a列 c列 d列 e列 f列 这就上excel表中相互要减的
不知道楼主到底是要哪个减哪个。
其实最简单的方法是直接在EXCEL中添加一列或多列,在这添加的列中添加一个减法表达式,然后程序只需要关心这几列就可以了。
东方之珠 2008-04-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 myjian 的回复:]
.......智商不够....看不怎么懂-_-

帮顶顶吧.
[/Quote]

智商不高怎么能玩单片机?
HTRaiden 2008-04-04
  • 打赏
  • 举报
回复
波导终结者 2008-04-04
  • 打赏
  • 举报
回复
13楼的代码会重复计算吧,而且
If (ExcelData(i) <> 0) And (ExcelData(j) <> 0) And (ExcelData(i) <> ExcelData(j)) Then
不能减自己应该是i <> i吧

For i = 1 To 5
For j = i+1 To 6
这样可以不用判断是否重复或自减

If Abs(Data) = 1 Or Data = 0 Then
可以改成 Abs(Data)<=1
东方之珠 2008-04-04
  • 打赏
  • 举报
回复
错了,错了:
If (ExcelData(i) <> 0) And (ExcelData(j) <> 0) And (ExcelData(i) <> ExcelData(j)) Then '不能自己减自己,也不能都为0

改为:
If (ExcelData(i) <> 0) And (ExcelData(j) <> 0) And i <>j Then '不能自己减自己,也不能都为0
加载更多回复(11)
相关推荐
发帖
API

1483

社区成员

VB API
社区管理员
  • API
加入社区
帖子事件
创建了帖子
2008-04-03 12:57
社区公告
暂无公告