- ·上一篇:excel如何把数值降序排序
- ·下一篇:系统里的表格如何导出excel
异常系统如何导入excel
1.系统出现解析返回值异常是怎么回?上传照片时
你好,很高兴为您解答。
使用Windows操作系统的人有时会遇到这样的错误信息: 「“0X????????”指令引用的“0x00000000”内存,该内存不能为“read”或“written”」,然后应用程序被关闭。 如果去请教一些「高手」,得到的回答往往是「Windows就是这样不稳定」之类的义愤和不屑。
其实,这个错误并不一定是Windows不稳定造成的。本文就来简单分析这种错误的一般原因。
一、应用程序没有检查内存分配失败 程序需要一块内存用以储存数据时,就需要使用操作系统提供的「功能函数」来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。 这就是「动态内存分配」,内存地址也就是编程中的「光标」。
内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值「0」已不表示新启用的游标,而是系统向应用程序发出的一个通知,告知出现了错误。
作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的「健壮性」。 若应用程序没有检查这个错误,它就会按照「思维惯性」认为这个值是给它分配的可用游标,继续在之后的执行中使用这块内存。
真正的0地址内存区储存的是计算机系统中最重要的「中断描述符表」,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即当机,而在健壮的操作系统中,如 Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。
这时候,就会出现上述的「写内存」错误,并指出被引用的内存地址为「0x00000000」。内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。
因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中「安装」的病毒程序),更改了大量的系统参数和系统档案之后。 二、应用程序由于自身BUG引用了不正常的内存光标 在使用动态分配的应用程序中,有时会有这样的情况出现:程序试突读写一块「应该可用」的内存,但不知为什么,这个预料中可用的光标已经失效了。
有可能是「忘记了」向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而「没有留意」等等。 注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图「违法」的程序唯一的下场就是被操作终止执行,回收全部资源。
计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。 无效光标不一定总是0,因此错误提示中的内存地址也不一定为「0x00000000」,而是其它随机数字。
如果系统经常有所提到的错误提示,下面的建议可能会有说明 : 1。检视系统中是否有木马或病毒。
这类程序为了控制系统往往不负责任地修改系统, 从而导致操作系统异常。 平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。
2。更新操作系统,让操作系统的安装程序重新拷贝正确版本的系统档案、修正系统参数。
有时候操作系统本身也会有BUG,要注意安装官方发行的升级程序。 3。
试用新版本的应用程序。 Mode: 将虚拟内存撤换 答案: 目前为止是肯定的,也就是如在下次冷天到来时亦没再发生,就代表这是主因 追加: 如果你用 Ghost 恢复 OS 后建议 删除WINDOWS\PREFETCH目录下所有*。
PF文件因为需让windows重新收集程序的物理地址 有些应用程序错误 "0x7cd64998" 指令参考的 "0x14c96730" 内存。 该内存不能为 "read"推论是此原因 源由: Win XP的「预读取」技术 这种最佳化技术也被用到了应用软件上,系统对每一个应用软件的前几次启动情况进行分析,然后新增一个描述套用需求的虚拟「内存映像」,并把这些信息储存到 WINDOWSPREFETCH数据夹。
一旦建立了映像,应用软件的装入速度大大提高。XP的预读取数据储存了最近8次系统启动或应用软件启动的信息。
后叙: 目前此方法亦是独步网络的(其码自己针对此问题查了许久),也是常见问题,原本几乎每天睡前关闭软件时一些程序都会发生。
read。
现在就没发生了。 。
2.我的EXCEL经常异常退出,具体是这样的: 新建一个EXCEL,在某个
很小.很小代表非常多数据.参考下文.除了工作簿本身有宏病毒外,以下几种原因也可能导致工作簿异常膨胀1、工作表中的格式过于复杂(如多种字体,多种颜色,条件格式等等)。
我们都知道,一个工作表有65536*256个单元格,这个非常大的一个范围。我们在应用一些格式设置时,往往为了方便,直接在整行,或整列,或者在多行和多列中应用,这样其实是不妥当的。
我相信很少有人会用满整列,或者整行。大量的没有用到的单元格被加上了一些格式后,Excel并不总是知道这个单元格是不需要用的,而往往在计算时会包括这些单元格。
另外,格式的多样性(包括字体,颜色等),势必是要造成Excel文件体积变大,这是不难理解的。用尽量少的格式样式,如字体和颜色,毕竟Excel的优势不是在于文书,版面的展示(那是Word,PowerPoint等的强项)。
删除“空白”的单元格。找到工作表中最右下角的单元格(请注意:除非你有自信,请不要过分依赖Excel 的"定位"="最后一个单元格"所给你的结果),我是说你可以手工找到这个单元格。
然后选中这个单元格右边所有的列,然后执行菜单命令:"编辑"=〉"清除"=〉"全部",接下来,选中这个单元格下面所有的行,同样执行菜单命令:"编辑"=〉"清除"=〉"全部",然后保存2、图片或者其他绘图图形较多,或者图片选择了不恰当的格式 在文档中引用的图片格式一般有三种,BMP、JPG、GIF。BMP格式保存的图片保真度较高,但大小往往是其它两种格式的几倍至几十倍,而照片、扫描图片等用GIF格式保存则失真非常严重,因此建议图片先采用JPG格式保存,然后再引入到文档中,这种格式的图片大小不仅比BMP格式小很多,而且往往也比GIF的格式小,而保真度与BMP格式则相差无几。
插入图片有两种方法,第一种是将图片保存为一个JPG格式的文件,选择“插入→图片→来自文件”,打开“插入图片”对话框,选中所需插入的图片文件,点击“插入”即可。另一种是用“画图”、“Microsoft照片编辑器”等打开这个JPG文件,选中并复制,然后在文档中点击“粘贴”即可插入。
强烈建议大家采用第一种方法,虽然两种方法得到的图片质量是一样的,但第一种方法所形成的文档的大小可能会比第二种小几十倍!彻底清除图形对象:例如我们自己画的一些图形,比如你现在不要用它们了,你选择行或者列范围删除,清除都是清除不掉了,他们只是可能缩小了。按F5---定位条件---对象--确定,按Delete清除3、公式和名称较多或者公式,名称,数据透视表等所引用的单元格范围过大。
由于和第二点类似的原因,我们在定义名称,编写公式,指定数据透视表的数据源时往往图一时方便,而指定了过大的单元格范围。例如在A列中有包括标题在内的10个数据(A1:A10),标题为“姓名”,我们现在要定义一个名称,例如"姓名",很多人会用 插入=〉名称=〉指定=〉首行,这当然是方便的,但这样的话“姓名”这个名称就引用了A2:A65536,而不是实际的A2:A10。
你能想象到两者的差别吗?这时候,有的朋友要说:我这样做的原因是因为我的数据是在不断增加的呀,我可不想每次在变动的时候都去改这个名称。当然,你是对的,谁会愿意这样做呢?当我确信我定义的这个名称所引用的范围不可能是固定的时候,我采用了一个方法就是“动态命名”。
听起来有点耳熟对吗?请看这个例子:为简单起见,我们假设数据都是连续地在A10后面开始添加,也就是说我们希望当我们添加到A15时,这个"姓名"就如我所愿地指向A2:A15,而这一切都是自动完成的。那么你可以在"插入"=〉"名称"="定义"对话框中,找到"姓名",然后修改引用位置为=OFFSET($A$2,0,0,COUNTA($A:$A)-1,1),然后点击"添加"。
请留步,先不要急着关闭这个对话框。你现在可以将鼠标放在"引用位置"的这个框里面,由此来验证你要的结果。
看到了吗?工作表中那一闪一闪的区域就表示了目前"姓名"所引用的单元格范围 这只是一个简单的示范,利用这种技巧,可能让我们用最经济的方式得到我们需要的结果 在公式引用中,在指定数据透视表的数据源时,都可以运用类似的技巧。当然,我不会推荐你写类似这样的公式=CountA(OFFSET($A$2,0,0,COUNTA($A:$A)-1,1)),而是推荐你先定义好这个名称,然后这样写公式:=CountA(姓名 这种效果在数组公式中更明显,除非你有足够的耐心和勇气,请不要在数组公式用引用过大的单元格范围,特别是那些不必要的单元格。
请注意,以上的检查应该是针对工作簿中的所有工作表,包括隐藏的4、VBA代码,尤其是用户窗体的影响 现在很多朋友都已经学会了用VBE来构建自己的工程,这是多么令人振奋的一件事!但今天我们要讨论的是如何处理VBA工程可能带来一些副作用以及如何压缩它?有很多测试证明,用户窗体会是增加文件大小的比较突出的原因之一。而反复地改写工程中模块的代码,也或多或少地会增加文件的大小(我们可以这样理解:反复地改写工程代码,总是会留下一些痕迹和碎片) 对于这个问题,可以考虑将所有模块,窗体,都导出为文件,然后保存,然。
