+ -
当前位置:首页 → 问答吧 → 这题,要用vba来完成,该怎样编?

这题,要用vba来完成,该怎样编?

时间:2011-08-09

来源:互联网

把选中球员和项目的成绩复制上去,简单的题目把弟弟难到了

附件

4444.zip(4.81 KB)

2011-8-9 10:34, 下载次数: 23

作者: wan卡特bao   发布时间: 2011-08-09

不明白啥意思

作者: wudixin96   发布时间: 2011-08-09

就是,下面的是源数据,完成上面的表。

作者: wan卡特bao   发布时间: 2011-08-09

问题怎么知道哪些球员是被选中的,哪些项目是被选 中的。

作者: wudixin96   发布时间: 2011-08-09

透视表可以吗?

未命名.jpg (42.58 KB)
2011-8-9 10:52

作者: chen7806   发布时间: 2011-08-09

4444.rar (7.46 KB)
4444.rar (7.46 KB)
下载次数: 7
2011-8-9 10:52

作者: dsmch   发布时间: 2011-08-09

六个记号六个记号六个记号

作者: panan123_0   发布时间: 2011-08-09

看了5楼才知道原来是这么一回事啊

作者: wudixin96   发布时间: 2011-08-09

六楼就是我想要的。完成后我想把,源数据删掉,该加句什么代码?

作者: wan卡特bao   发布时间: 2011-08-09

用数据透视表可以做.

作者: suse360   发布时间: 2011-08-09

c2=SUM(($B2=$A$9:$A$34)*(C$1=$B$9:$B$34)*$C$9:$C$34)
数组结束

附件

4444.rar(7.81 KB)

2011-8-9 11:02, 下载次数: 1

作者: panan123_0   发布时间: 2011-08-09

C3=SUMPRODUCT(--(($A$9:$A$34=$B3)*($B$9:$B$34=C$1)),$C$9:$C$34)
右拉,下拉

作者: linzhijunwain   发布时间: 2011-08-09

删除数据源
Sub Macro1()
Dim arr, brr, i&, j&, k&
Range("c2:g5").ClearContents
arr = Range("b1:g5")
brr = Range("a9:c" & Range("a65536").End(xlUp).Row)
For i = 1 To UBound(brr)
    For j = 2 To UBound(arr)
        For k = 2 To UBound(arr, 2)
            If brr(i, 1) = arr(j, 1) And brr(i, 2) = arr(1, k) Then arr(j, k) = brr(i, 3)
        Next k
    Next j
Next i
Range("b1").Resize(UBound(arr), UBound(arr, 2)) = arr
Range("A8:C3444").ClearContents
End Sub
最后加个
Range("A8:C3444").ClearContents

作者: panan123_0   发布时间: 2011-08-09

字典方法来一个请看附件!

附件

姓名项目.rar(11.44 KB)

2011-8-9 11:25, 下载次数: 3

作者: 陈国华   发布时间: 2011-08-09

sql 也来个
Sub xs()
Dim Sql As String, x, y, zz, i&
Set x = CreateObject("adodb.connection")
x.Open "provider=microsoft.jet.oledb.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.FullName
Sql = "transform sum(成绩) SELECT 项目 FROM [sheet1$] group by 项目 pivot 球员"
Set y = x.Execute(Sql)
i = 1
Sheet2.Activate
Cells(1, 2).Resize(1000, 100).ClearContents
For Each zz In y.Fields
    i = i + 1
    Cells(1, i) = zz.Name
Next
Sheet2.[b2].CopyFromRecordset y
End Sub

附件

姓名项目.rar(14.21 KB)

2011-8-9 11:37, 下载次数: 2

作者: panan123_0   发布时间: 2011-08-09

Sub 加载公式()
Range("C2:G5") = "=SUMPRODUCT((R9C1:R34C1=RC2)*(R9C2:R34C2=R1C),R9C3:R34C3)"
End Sub

作者: panan123_0   发布时间: 2011-08-09

我加了一项,其余项目之后,代码该如何该?请指教

附件

4444.zip(8.42 KB)

2011-8-9 15:35, 下载次数: 3

作者: wan卡特bao   发布时间: 2011-08-09

复制内容到剪贴板
代码:
Dim arr, brr, i&, j&, k&
Range("c2:g5").ClearContents
arr = Range("b1:g6")
brr = Range("a9:c" & Range("a65536").End(xlUp).Row)
For i = 1 To UBound(brr)
    For j = 2 To UBound(arr) - 1
        For k = 2 To UBound(arr, 2)
            If brr(i, 1) = arr(j, 1) And brr(i, 2) = arr(1, k) Then arr(j, k) = brr(i, 3): arr(UBound(arr), k) = arr(UBound(arr), k) + brr(i, 3)
        Next k
    Next j
Next i
Range("b1").Resize(UBound(arr), UBound(arr, 2)) = arr

作者: dsmch   发布时间: 2011-08-09

相关阅读 更多