Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2915|回复: 11

[已解决]vba数据定位

[复制链接]
发表于 2012-8-12 00:51 | 显示全部楼层 |阅读模式
课表问题,查到的结果不能放到应有位置
最佳答案
2012-8-12 10:18
Sub 查找()
    Dim Rng As Range
    Dim Hang%, jiaoshi$
    Dim arr, brr(0 To 9, 1 To 6), i%, x%, y%
    jiaoshi = Sheets("教师课表").Range("e1")
    With Worksheets("课表")
        Hang = .Range("b:b").Find(jiaoshi).Row
        arr = .Cells(Hang, 4).Resize(1, 58)
        For i = 1 To 58
            If i > 49 Then
                x = i Mod 10
                y = i \ 10 + 1
            Else
                x = (i - 1) Mod 10
                y = (i - 1) \ 10 + 1
            End If
            brr(x, y) = arr(1, i)
        Next i
    End With
    Range("c4").Resize(10, 6) = brr
End Sub
把星期三多余的第9节灭掉以后,用这代码

课表.rar

20.44 KB, 下载次数: 53

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-8-12 08:22 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2012-8-12 09:53 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2012-8-12 09:54 | 显示全部楼层
zjcat35 发表于 2012-8-12 08:22
为什么星期三有两个第9节课!!

将第一个第九节去掉
回复

使用道具 举报

 楼主| 发表于 2012-8-12 09:56 | 显示全部楼层
cfq-xxj 发表于 2012-8-12 09:54
将第一个第九节去掉

还是不能准确定位!
回复

使用道具 举报

发表于 2012-8-12 09:57 | 显示全部楼层
星期五、六都是只有9节课的么?
回复

使用道具 举报

 楼主| 发表于 2012-8-12 10:03 | 显示全部楼层
zjcat35 发表于 2012-8-12 09:57
星期五、六都是只有9节课的么?

是的,其实我也是帮别人做的,也不真了解。
回复

使用道具 举报

发表于 2012-8-12 10:18 | 显示全部楼层    本楼为最佳答案   
Sub 查找()
    Dim Rng As Range
    Dim Hang%, jiaoshi$
    Dim arr, brr(0 To 9, 1 To 6), i%, x%, y%
    jiaoshi = Sheets("教师课表").Range("e1")
    With Worksheets("课表")
        Hang = .Range("b:b").Find(jiaoshi).Row
        arr = .Cells(Hang, 4).Resize(1, 58)
        For i = 1 To 58
            If i > 49 Then
                x = i Mod 10
                y = i \ 10 + 1
            Else
                x = (i - 1) Mod 10
                y = (i - 1) \ 10 + 1
            End If
            brr(x, y) = arr(1, i)
        Next i
    End With
    Range("c4").Resize(10, 6) = brr
End Sub
把星期三多余的第9节灭掉以后,用这代码
回复

使用道具 举报

 楼主| 发表于 2012-8-12 10:40 | 显示全部楼层
zjcat35 发表于 2012-8-12 10:18
Sub 查找()
    Dim Rng As Range
    Dim Hang%, jiaoshi$

Range("c4").Resize(10, 6) = brr
是什么含义?

点评

这是使用数组对单元格区域的一个赋值! 直接改成这样也行 cells(x+4,y+2) = arr(1,i) 再把Range("c4").Resize(10, 6) = brr这句去掉  发表于 2012-8-12 11:04
回复

使用道具 举报

 楼主| 发表于 2012-8-12 10:41 | 显示全部楼层
zjcat35 发表于 2012-8-12 10:18
Sub 查找()
    Dim Rng As Range
    Dim Hang%, jiaoshi$

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-7 16:49 , Processed in 0.313797 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表