Excel 超出行限制-创建新工作表

Excel 超出行限制-创建新工作表,excel,vba,Excel,Vba,我在一张“列表”上有两列,一列列出所有业务实体,另一列列出所有组织单位。下面代码的功能工作正常,但返回错误,因为它超出了图纸行限制 将数据粘贴到工作表“cc_act”中是否有方法在出现错误时创建一个名为“cc_act1”…“cc_act2”的新工作表,直到脚本完成 Declare Function HypMenuVRefresh Lib "HsAddin" () As Long 小组委员会() Application.ScreenUpdate=False 将列表作为工作表:设置列表=此工作簿。

我在一张“列表”上有两列,一列列出所有业务实体,另一列列出所有组织单位。下面代码的功能工作正常,但返回错误,因为它超出了图纸行限制

将数据粘贴到工作表“cc_act”中是否有方法在出现错误时创建一个名为“cc_act1”…“cc_act2”的新工作表,直到脚本完成

Declare Function HypMenuVRefresh Lib "HsAddin" () As Long
小组委员会()

Application.ScreenUpdate=False
将列表作为工作表:设置列表=此工作簿。工作表(“列表”)
将p设置为工作表:设置p=ThisWorkbook.Worksheets(“p”)
将计算作为工作表进行调整:设置计算=此工作簿。工作表(“计算”)
将抄送设置为工作表:设置抄送=此工作簿。工作表(“抄送行动”)
尺寸cc_lr尽可能长
尺寸计算长度:计算长度=计算单元格(Rows.Count,“A”)。结束(xlUp)。行
长度为的尺寸计算单元:计算单元=计算单元(1,
计算列数)。结束(xlToLeft)。列
尺寸计算范围
调光范围
作为整数的Dim i
作为整数的Dim x
列表。激活
对于x=2到范围(“B”和Rows.Count).End(xlUp).Row
如果list.Range(“B”&x.Value”),则
p、 单元格(17,3)=列表范围(“B”和x).值
如果结束
对于i=2到范围(“A”&Rows.Count).End(xlUp).Row
如果list.Range(“A”&i.Value”),则
p、 单元格(17,4)=列表范围(“A”&i).值
p、 算计
如果结束
p、 激活
调用HypMenuVRefresh
p、 算计
''更改计算表上的国家/地区
计算单元(2,2)=p单元(17,4)
计算单元(2,3)=p单元(17,3)
计算
''复制最后一列下的计算范围和过去
用计算器
设置计算范围(“A2:F2”和计算范围)
以
与cc
cc_lr=cc.Cells(Rows.Count,“A”)。End(xlUp)。Row+1
计算副本
cc.单元格(cc_lr,“A”).粘贴特殊XLPaste值
以
接下来我
下一个x
Application.ScreenUpdating=True
端接头

我想有几种方法可以处理这样的事情。请参阅下面的代码示例,并根据您的具体需要进行调整

Sub LongColumnToAFewColumns()
    Dim wsF As Worksheet, WST As Worksheet
    Dim rf As Range, rT As Range
    Dim R As Long, j As Integer

    ' initialize
    Set wsF = ActiveSheet
    Set WST = Sheets.Add
    WST.Name = "Results"

    j = 1

    For R = 1 To wsF.Cells(Rows.Count, 1).End(xlUp).Row Step 65536
        wsF.Cells(R, 1).Resize(65536).Copy
        WST.Cells(j, 1).PasteSpecial xlPasteValues

WST.Cells(j, 1).PasteSpecial xlPasteValues

        j = j + 1
    Next R

End Sub

顺便说一下,您可能想考虑使用MS-Access来处理这种事情。或者,更好的是Python甚至R。祝您的项目好运。

您有一个两列的工作表,它超过了行限制,并且有两个字段的组合?您正在运行哪个版本的Excel?除非你在XL 2003上,否则你有超过一百万行的业务实体/组织单位组合?那是什么生意?你们有多少个商业实体?你有多少组织单位?如果你算对了,结果会超过一百万吗?我发现这对任何企业来说都难以相信。使用
Long
作为行计数器<代码>整数对于行数超过65535行186个实体(包含369个不同单位)的行数不够大,我每个月提取15个费用账户。
Sub LongColumnToAFewColumns()
    Dim wsF As Worksheet, WST As Worksheet
    Dim rf As Range, rT As Range
    Dim R As Long, j As Integer

    ' initialize
    Set wsF = ActiveSheet
    Set WST = Sheets.Add
    WST.Name = "Results"

    j = 1

    For R = 1 To wsF.Cells(Rows.Count, 1).End(xlUp).Row Step 65536
        wsF.Cells(R, 1).Resize(65536).Copy
        WST.Cells(j, 1).PasteSpecial xlPasteValues

WST.Cells(j, 1).PasteSpecial xlPasteValues

        j = j + 1
    Next R

End Sub