新足迹

 找回密码
 注册

精华好帖回顾

· 猫咪品种大全,给爱猫的你(视频添加中·!) (2009-5-19) edith921 · 8月美食活动-烧肉是这样上色的 3楼上做法了哦 (2009-8-15) rongerchen
· 糊里糊涂的买车记, Subaru XV (2013-4-24) Tictac999 · "国内幼儿园教很多东西”有感 (2009-9-9) chatchat
Advertisement
Advertisement
查看: 1415|回复: 2

Excel VBA问题求助 [复制链接]

发表于 2012-2-9 10:20 |显示全部楼层
此文章由 Melway 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Melway 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Sheet1里有一列有不同的手机号,想自动把不同的手机号摘出来,copy到不同的sheet里,sheet的标题就是手机号,title就是第一行title(每个sheet都一样),但是运行之后可以生成以各个手机号命名的sheet,但是不copy内容,最后出error 9, Subscript out of range.

请教大大们这时什么问题。

Sub Macro1()
'
' Macro1 Macro
'

'
    Dim AccountNumber
    RawData = Application.InputBox("Please enter the name of the sheet with raw data", "Mobile Bill Analiser")
    AccountNumberColumn = Application.InputBox("Please enter the Column containing Account Number", "Mobile Bill Analiser")
   
    Sheets(RawData).Select
    Range(AccountNumberColumn & "2").Select
   
    AccountNumber = 1
    Transfername = ActiveCell.Value
    Rows("1:1").Copy
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Name = Transfername
    Range("A1").Select
    ActiveSheet.Paste
    Sheets(RawData).Select
    ActiveCell.Offset(1, 0).Select
   
    Do Until ActiveCell.Value = ""
        If ActiveCell.Value = ActiveCell.Offset(-1, 0).Value Then
                ActiveCell.Offset(1, 0).Select
        Else
           Rows("1:1").Copy
           Transfername = ActiveCell.Value
           Sheets.Add After:=Sheets(Sheets.Count)
           ActiveSheet.Name = Transfername
           Range("A1").Select
           ActiveSheet.Paste
           Sheets(RawData).Select
           ActiveCell.Offset(1, 0).Select
        End If
    Loop
   

    Sheets(RawData).Select
    Range(AccountNumberColumn & "2").Select
    Do Until ActiveCell.Value = ""
            SheetName = ActiveCell.Value
            Rows("2:2").Cut
            Sheets(SheetName).Select
            Range("A2").Select
            Selection.Insert Shift:=xlDown
    Loop
Advertisement
Advertisement

退役斑竹

发表于 2012-2-9 10:57 |显示全部楼层
此文章由 大饼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 大饼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Debug your code step by step,就能找到那一行出了问题。
我做copy,不select row或cell。都是直接copy的。我也不知道是否专业。
wbTempleteRecord.Sheets(1).Rows(2).Copy wbOutput.Sheets(3).Rows(LastRowOutput)
专攻电子电路

发表于 2012-2-9 11:13 |显示全部楼层
此文章由 bats 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bats 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Sheets(SheetName).Select
            Range("A2").Select
to
            Sheets(SheetName).Select
            Rows("2:2").Select

发表回复

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

本版积分规则

Advertisement
Advertisement
返回顶部