关于vba代码运行时错误1004 应用程序定义或对象定义错误问题

news2025/7/11 18:02:13

一、错误描述

将Excel所有工作表,汇总到一个工作表中:

在thisworkbook中运行如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

Sub 合并所有工作表_在所有行标注工作表名字_无视空行空列_考虑到不规范的多一点的行和列()

    Dim row_num As Long, column_num As Long, row_num_temp As Long, column_num_temp As Long, row_num_merge As Long, column_num_merge As Long, i As Long, arr() As Long

    Worksheets.Add.Name = "合并表"

    Sheets("合并表").Move before:=Sheets(1)

    For i = 2 To Worksheets.Count

        Worksheets(i).Activate

        'UsedRange.row,代表使用的第一个行数,在有空行的时候体现,同理,UsedRange.column,代表使用的第一个列数,在有空列的时候体现

        '那么使用第一行 + 已使用的行数,这样可以规避顶部/左侧有空行,导致获取已使用行号的数据不符合预期(老赵,如果你看到这里不懂,就自己拆开代码,加上空行空列体会一下)

        row_num = Worksheets(i).UsedRange.Row + Worksheets(i).UsedRange.Rows.Count - 1

        column_num = Worksheets(i).UsedRange.Column + Worksheets(i).UsedRange.Columns.Count - 1

        '如果格式很不规范,那么获取的UsedRange.rows.count就可能是整个表格的行数,所以要规避这种情况,如果相同,就让他减1

        If row_num = Worksheets(i).Rows.Count Then row_num = row_num - 1

        If column_num = Worksheets(i).Columns.Count Then column_num = column_num - 1

         

        '相当于遍历所有的列,都按ctrl + ↑,取数组的最大值

        ReDim arr(1 To column_num)

        For j = LBound(arr) To UBound(arr)

            row_num_temp = Worksheets(i).Cells(row_num + 1, j).End(xlUp).Row

            arr(j) = row_num_temp

        Next

        Debug.Print (Application.WorksheetFunction.Max(arr))

        row_num_temp = Application.WorksheetFunction.Max(arr) '赋予最大值,确定最大的有数据的行数

         

        '相当于遍历所有的行,都按ctrl + ←,取数组的最大值

        'Erase arr 清空数组,但是也可以不用,直接用ReDim也可以,如果要保留数组内容,需要加一个preserve

        ReDim arr(1 To row_num_temp)

        For j = LBound(arr) To UBound(arr)

            column_num_temp = Worksheets(i).Cells(j, column_num + 1).End(xlToLeft).Column

            arr(j) = column_num_temp

        Next

        Debug.Print (Application.WorksheetFunction.Max(arr))

        column_num_temp = Application.WorksheetFunction.Max(arr) '赋予最大值,确定最大的有数据的列数

         

        Worksheets(i).Range(Cells(1, 1), Cells(row_num_temp, column_num_temp)).Select

        Selection.Copy Sheets("合并表").Cells(row_num_merge + 1, 2)

        Worksheets("合并表").Cells(row_num_merge + 1, 1) = Worksheets(i).Name

        row_num_merge = Sheets("合并表").UsedRange.Rows.Count

    Next

    '将首行标题转为所有行(选择空值,=上面的数据)

    Worksheets("合并表").Activate

    Columns("A:A").Select

    Selection.SpecialCells(xlCellTypeBlanks).Select

    Application.CutCopyMode = False

    Selection.FormulaR1C1 = "=R[-1]C"

    Columns("A:A").Select

    Selection.Copy

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

    Application.CutCopyMode = False

    Range("A1").Select

End Sub

新建模块,运行如下:

二、原因调查

发现是工作表中数据存在异常,例如:

最下面存在个别数据,导致复制粘贴的时候单元格数量不足,形成此错误;

总结

分享:
“难道生命这漫长进程中所有的努力和希望,都是为了那飞娥扑火的一瞬间?”“飞蛾并不觉得阴暗,它至少享受了短暂的光明。"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/36680.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据面试题(五):Hadoop优化核心高频面试题

文章目录 Hadoop优化核心高频面试题 一、Mapreduce 跑的慢的原因? 1、计算机性能 2、I/O 操作优化 二、Mapreduce优化方法 1、数据输入 2、map阶段 3、reduce阶段 4、IO传输 5、数据倾斜问题 6、常用的调优参数 三、HDFS小文件优化方法 1、HDFS小文件…

【MATLAB】常见语法结构和实用操作

目录 语法结构 循环(遍历)结构 函数结构 画图操作 绘制函数图像 ezplot figure多图绘制 创建多项式 按照系数创建多项式 利用多项式零点创建多项式 解方程组 语法结构 循环(遍历)结构 与其它编程语言类似,…

常用辅助类

CountDownLatch 应用场景:1.多线程任务汇总。2.多线程任务阻塞住,等待发令枪响,一起执行。 减法计数器 每次有线程调用,数量-1,当计数器归零,countDownLatch.await()就会被唤醒向下执行。 import java.uti…

【代码随想录】二刷-二叉树

二叉树 《代码随想录》 二叉树的遍历方式 深度优先遍历: 前序遍历(递归法、迭代法): 中左右中序遍历(递归法、迭代法): 左中右后序遍历(递归法、迭代法): 左右中 广度优先遍历: 层序遍历(迭代法) 二叉树的定义 struct TreeNode{int val;TreeNode* left;TreeNode* right;TreeN…

无线传感器网络:网络层

文章目录Challenges for RoutingEnergy EfficiencyScalabilityAddressingRobustnessTopologyApplicationRouting MetricsQuality-of-Service (QoS)Minimum HopEnergyMinimum energy consumed per packetMaximum time to network partitionMaximum average energy capacityMaxim…

Java并发-操作系统,进程,线程,并行并发?

我们首先来看看,三者之间的关系,从图中可以看到 操作系统是包含多个进程的容器;而每个进程又是容纳多个线程的容器。什么是进程?官方定义: 进程(baiProcess)是计算机中的程序关于某数据集合上的…

详解:网络虚拟化卸载加速技术的演进

在传统的应用场景中,服务器资源过剩情况普遍,为了充分利用服务器资源,产生了虚拟化技术。虚拟化技术以牺牲部分效率为代价提升了资源的使用率,将原来需要硬件完成的工作,通过软件模拟的方式,满足多个云租户…

初识Qt Quick

讲讲最近几年Qt的热门技术Quick这一块了。 啥是Qt? 哦,这是一个宣称可以跨任意平台,开发各种场景应用软件的开发框架。从三个维度来讲,就是开发库framework,集成开发平台IDE,以及成熟的开发思维模式。 Q…

CAS:82055-94-5,Azide-PEG-Azide,N3-PEG-N3,叠氮聚乙二醇叠氮试剂供应

1、名称 英文:Azide-PEG-Azide,N3-PEG-N3 中文:叠氮-聚乙二醇-叠氮 2、CAS编号:82055-94-5 3、所属分类:Azide PEG 4、分子量:可定制,叠氮-PEG-叠氮 2000、叠氮peg叠氮 1000、叠氮-聚乙二醇…

org.activiti.bpmn

org.activiti.bpmn目录概述需求:设计思路实现思路分析1.BpmnAutoLayout2.BPMNLayout参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for ch…

Mybatis概述

1 概述 原来是Apache的一个开源项目,叫iBatis, 2010年6月这个项目由 Apache Software Foundation 迁移到了 Google Code,随着开发团队转投Google Code 旗下,从 iBatis3.0正式更名为MyBatis。 MyBatis 是一款优秀的持久层框架,对j…

容器卷挂载的秘密

什么是容器卷 数据卷 (Data Volumes )是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似于 Linux 中的 mount 行为。 容器挂载原理 containerd创建的容器里的数据存储在下面的目录中 [rootmaster01 httpb…

【C/C++】万字图文详解C语言文件操作 完美装饰课设大作业

目标导航 写在前面 为什么使用文件? 什么是文件? 程序文件 数据文件 认识文件名 文件的打开和关闭 文件指针 文件的打开和关闭 1.以"r"(只读)的方式打开文件 2.以"w"(只写)…

Java#24(常见API--2)

目录 一.Rantime Runtime表示当前虚拟机的运行环境 Runtime常用方法 扩展:对象克隆 二.Objects Objects是一个对象工具类,提供了一些操作对象的方法 一.Rantime Runtime表示当前虚拟机的运行环境 Runtime常用方法 方法名 作用 publi…

葡萄糖-聚乙二醇-链霉亲和素|Streptavidins-PEG-Glucose|链霉亲和素-PEG-葡萄糖

链霉亲和素(streptavidin下称SA)是与亲和素(avidin下称AV)是一种蛋白质,链霉亲和素是四聚体蛋白,大小为66KDa。一分子链霉亲和素可以高度特异性地与四分子生物素结合,两者之间的亲和力较为强烈。链霉亲和素分子由4条相同的肽链组成&#xff0…

delete-by-query和复合查询

根据term,match等查询方式去删除大量的文档 Ps:如果你需要删除的内容,是index下的大部分数据,推荐创建一个全新的index,将保留的文档内容,添加到全新的索引 # delete-by-query POST /sms-logs-index/sms-lo…

毕业设计-基于机器视觉的颜色目标识别

目录 前言 课题背景和意义 实现技术思路 什么是彩色空间 怎么利用彩色空间 颜色识别的过程 读取图片进行hsv色域转换 对图片特定颜色识别 本地摄像头对视频流进行颜色识别 实现效果图样例 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后…

Python基础-面向对象编程之特性(property)

Python面向对象编程之特性(property) 一、统一访问原则 通常,我们访问实例或类的属性时,将返回所存储的相关值。而特性(property)是一种特殊的属性,访问它时会计算它的值。 请看下面的例子: import mat…

基于android的个性闹铃的设计与开发(闹铃,日历,计时器,备忘录)

目 录 摘 要 2 Abstract 2 1 选题的背景和意义 5 1.1 选题的背景 5 1.2 国内外研究现状 5 1.2.1 国内外手机系统现状 5 1.2.2 国内外手机应用现状 7 1.2.3 发展趋势 7 2 需求分析 9 2.1 系统需求 9 2.2 需求分析 9 2.3 约束与限制 10 3 总体设计 11 3.1 系统结构图 11 3.2 总体…

【数论】约数

文章目录一、试除法求n的所有约数二、约数个数三、约数之和四、最大公约数&#xff08;欧几里得算法/辗转相除法&#xff09;一、试除法求n的所有约数 vector<int> getDivisors(int n) {vector<int> ans;for (int i 2; i < n / i; i) {if (n % i 0) {ans.pus…