高分求教:一个Excel操作问题!!

szm866 2004-11-12 07:01:28
在一个Excel文件里面有两列数据A和B,一一对应的。其中A组里面的数据部分有重复,而且重复的数据不一定连在一起的。要求编写一个程序,把相同的A对应的B求平均,重新生成另外一组一一对应的数据,然后输出到另外一个Excel文件里面。数据量比较大,有时有两千多对数据。
如何实现该过程,请高手写一段注释比较详细的代码好吗?谢谢!

...全文
113 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
leolan 2004-11-13
  • 打赏
  • 举报
回复
'這兩個只是測試用的,當然要改成你的字段名啦:
procname --> Volts
qty --> I
szm866 2004-11-13
  • 打赏
  • 举报
回复
调试时点击Command1,弹出如下对话框:
实时错误
Circular reference caused by alias 'qty' in query definition's SELECT list


点击“调试”按钮,发现高亮显示的正是这句:
rs.Open "Select procname, Avg(qty) as qty From [Sheet1$] group by procname", cnn, adOpenForwardOnly, adLockReadOnly, adCmdText

怎么办?

PS:数据文件的两个字段名分别是:A组:Volts B组:I
szm866 2004-11-13
  • 打赏
  • 举报
回复
搞定了!
谢谢
leolan 2004-11-12
  • 打赏
  • 举报
回复
看成求和了:),修改一下:
//rs.Open "Select procname, sum(qty) as qty From [Sheet1$] group by procname", cnn, adOpenForwardOnly, adLockReadOnly, adCmdText
改為
rs.Open "Select procname, Avg(qty) as qty From [Sheet1$] group by procname", cnn, adOpenForwardOnly, adLockReadOnly, adCmdText
leolan 2004-11-12
  • 打赏
  • 举报
回复
'reference Microsoft Excel X.0 Object Library and Microsoft Activex Data Object 2.X Library
Private Sub Command1_Click()
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim xlsApp As New Excel.Application
Dim xlsSheet As Excel.Worksheet
Dim xlsQtbl As Excel.QueryTable

cnn.CursorLocation = adUseClient
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=c:\test.xls;Extended Properties='Excel 8.0;HDR=Yes'"
rs.Open "Select procname, sum(qty) as qty From [Sheet1$] group by procname", cnn, adOpenForwardOnly, adLockReadOnly, adCmdText
Set xlsSheet = xlsApp.Workbooks.Add.Sheets(1)
Set xlsQtbl = xlsSheet.QueryTables.Add(rs, xlsSheet.Range("A1")) '.Refresh
xlsQtbl.Refresh
xlsSheet.SaveAs "C:\test1.xls"
xlsApp.Quit
Set xlsApp = Nothing
Set xlsSheet = Nothing
rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing
End Sub
ZWB_ZYN 2004-11-12
  • 打赏
  • 举报
回复
个人给你的一个解决方案

用数组和集合,插入相同数据的时候集合会提示重复,可以将此数据另存并记重复次数,以及数组下标
可以得到重复的A的下标,从而得到B,然后求平均
leolan 2004-11-12
  • 打赏
  • 举报
回复
關注..

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧