Excel精英培训网

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

[已解决]求号码获奖超10元后放到另外sheet?

[复制链接]
发表于 2012-8-8 21:11 | 显示全部楼层 |阅读模式
本帖最后由 go1500 于 2012-8-19 15:16 编辑

要求:
    把《投注号码》中中奖期数大于或等于2期,中奖金额大于10元的单注号码放到sheet2中
最佳答案
2012-8-10 10:30
1.如果开奖信息区域和投注区域是固定的,请修改以下两句中等号后面的字符为 形如Range("B2:H100")的语句即可

arrDrawn = Application.InputBox("请选择开奖信息区域", "开奖信息", , , , , , 8) '开奖信息区域

arrBet = Application.InputBox("请选择投注号码区域", "投注信息", , , , , , 8) '投注信息区域
2.保留上次信息
Sheets(2).Range("A2:I5000").Clear
Sheets(2).Cells(2, 1).Resize(UBound(Winning, 2), 9) = Application.Transpose(Winning)
将这两句修改为
Sheets(2).Cells(Sheets(2).Cells(65536,1).End(xlup).Row+1, 1).Resize(UBound(Winning, 2), 9) = Application.Transpose(Winning)
发表于 2012-8-9 08:23 | 显示全部楼层
彩票的题目一般都不愿意看,原因大都是没玩过,看不明白。所以提问彩票相关的,要尽量的减少专业的词,要写清具体的单元格位置,也就是说我要根据哪一列哪一行的数据,得到哪个表哪个区域的数据。
回复

使用道具 举报

 楼主| 发表于 2012-8-9 10:35 | 显示全部楼层
本帖最后由 go1500 于 2012-8-19 15:13 编辑
兰色幻想 发表于 2012-8-9 08:23
彩票的题目一般都不愿意看,原因大都是没玩过,看不明白。所以提问彩票相关的,要尽量的减少专业的词,要写 ...

先感谢兰色幻想 的热情提示,谢谢!!
回复

使用道具 举报

发表于 2012-8-9 21:55 | 显示全部楼层

祝你能中500WO(∩_∩)O

本帖最后由 suye1010 于 2012-8-9 22:00 编辑
  1. Option Explicit

  2. Sub LuckyDraw()
  3. Dim Winning, d As Object, i As Integer, j As Integer, arrBet, arrDrawn, _
  4.     BlueBall As Integer, RedBall As Integer, WinningRedBalls As Integer, TempTimes As Integer, TempPrize As Long
  5. Set d = CreateObject("Scripting.Dictionary")
  6. On Error Resume Next
  7. arrDrawn = Application.InputBox("请选择开奖信息区域", "开奖信息", , , , , , 8)
  8. arrBet = Application.InputBox("请选择投注号码区域", "投注信息", , , , , , 8)
  9. ReDim Winning(1 To 9, 0)
  10. For i = 1 To UBound(arrBet)
  11.     d.RemoveAll
  12.     For RedBall = 1 To 6
  13.         d(arrBet(i, RedBall)) = arrBet(i, RedBall)
  14.     Next RedBall
  15.     For BlueBall = 1 To 16
  16.         TempTimes = 0
  17.         TempPrize = 0
  18.         For j = 1 To UBound(arrDrawn)
  19.             WinningRedBalls = 0
  20.             For RedBall = 1 To 6
  21.                 If d.exists(arrDrawn(j, RedBall)) Then WinningRedBalls = WinningRedBalls + 1
  22.             Next RedBall
  23.                 If arrDrawn(j, 7) = BlueBall Then
  24.                     TempTimes = TempTimes + 1
  25.                     Select Case WinningRedBalls
  26.                         Case Is < 3
  27.                             TempPrize = TempPrize + 5
  28.                         Case 3
  29.                             TempPrize = TempPrize + 10
  30.                         Case 4
  31.                             TempPrize = TempPrize + 200
  32.                         Case 5
  33.                             TempPrize = TempPrize + 3000
  34.                         Case 6
  35.                             TempPrize = TempPrize + 5000000
  36.                     End Select
  37.                 Else
  38.                     Select Case WinningRedBalls
  39.                         Case 4
  40.                             TempTimes = TempTimes + 1
  41.                             TempPrize = TempPrize + 10
  42.                         Case 5
  43.                             TempTimes = TempTimes + 1
  44.                             TempPrize = TempPrize + 200
  45.                         Case 6
  46.                             TempTimes = TempTimes + 1
  47.                             TempPrize = TempPrize + 100000
  48.                     End Select
  49.                 End If
  50.         Next j
  51.         If TempTimes > 1 Or TempPrize > 10 Then
  52.             If Winning(1, 0) <> "" Then ReDim Preserve Winning(1 To 9, UBound(Winning, 2) + 1)
  53.             For RedBall = 1 To 6
  54.                 Winning(RedBall, UBound(Winning, 2)) = arrBet(i, RedBall)
  55.             Next RedBall
  56.             Winning(7, UBound(Winning, 2)) = BlueBall
  57.             Winning(8, UBound(Winning, 2)) = TempTimes
  58.             Winning(9, UBound(Winning, 2)) = TempPrize
  59.         End If
  60.     Next BlueBall
  61. Next i
  62. Sheets(2).Range("A2:I5000").Clear
  63. Sheets(2).Cells(2, 1).Resize(UBound(Winning, 2), 9) = Application.Transpose(Winning)
  64. End Sub
复制代码

评分

参与人数 1 +1 收起 理由
go1500 + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2012-8-10 09:40 | 显示全部楼层
本帖最后由 go1500 于 2012-8-10 09:56 编辑
suye1010 发表于 2012-8-9 21:55

感谢版主的帮助!
还有两问题:1、输出到sheet2时,如sheet2本身有前次计算结果(我想改变些参数,让他们放在一起),新计算的结果想接着上次的结果排下去(不想把上次结果清除掉),这两句怎么改呢

Sheets(2).Range("A2:I5000").Clear
Sheets(2).Cells(2, 1).Resize(UBound(Winning, 2), 9) = Application.Transpose(Winning)
2、我想固化“开奖信息区域”与“投注号码区域”,不用每次输入,如何改?

回复

使用道具 举报

发表于 2012-8-10 10:30 | 显示全部楼层    本楼为最佳答案   
1.如果开奖信息区域和投注区域是固定的,请修改以下两句中等号后面的字符为 形如Range("B2:H100")的语句即可

arrDrawn = Application.InputBox("请选择开奖信息区域", "开奖信息", , , , , , 8) '开奖信息区域

arrBet = Application.InputBox("请选择投注号码区域", "投注信息", , , , , , 8) '投注信息区域
2.保留上次信息
Sheets(2).Range("A2:I5000").Clear
Sheets(2).Cells(2, 1).Resize(UBound(Winning, 2), 9) = Application.Transpose(Winning)
将这两句修改为
Sheets(2).Cells(Sheets(2).Cells(65536,1).End(xlup).Row+1, 1).Resize(UBound(Winning, 2), 9) = Application.Transpose(Winning)

评分

参与人数 1 +1 收起 理由
go1500 + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2012-8-10 11:12 | 显示全部楼层
suye1010 发表于 2012-8-10 10:30
1.如果开奖信息区域和投注区域是固定的,请修改以下两句中等号后面的字符为 形如Range("B2:H100")的语句即可 ...

非常感谢!!楼主谢谢你!
回复

使用道具 举报

 楼主| 发表于 2012-8-10 22:53 | 显示全部楼层
本帖最后由 go1500 于 2012-8-19 15:16 编辑
suye1010 发表于 2012-8-10 10:30
1.如果开奖信息区域和投注区域是固定的,请修改以下两句中等号后面的字符为 形如Range("B2:H100")的语句即可 ...

    楼主的使用字典实在太强大了,恳请版主再帮一把
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-29 16:54 , Processed in 0.222083 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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