ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 291|回复: 2

[求助] 求助请教,不同电脑用带VBV的excel文件存在的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-4-29 14:50 | 显示全部楼层 |阅读模式
微信截图_20240428160755.jpg
1.用VBA做的EXCEL文件做了共享,有一台电脑非常怪异,用它打开保存后再退出,我再用其它电脑打开,就会出现这个问题
这是加工程密码,出现的问题,把这个问题关掉退出,再重新打开,就会变正常了,只要哪台电脑打开过这文件就会出现这个问题。

微信截图_20240429143339.jpg


2.这是没有加工程密码,出现的问题,把这个问题关掉退出,再重新打开,就会变正常了,只要哪台电脑打开过这个文件,都会出现同样问题。
请教下,这是不是两台不一样的电脑,是不是存在兼容问题,还是其它?想不明白都是一样的系统,一样的软件,为什么会这样呢?
image.png


TA的精华主题

TA的得分主题

发表于 2024-4-29 15:30 | 显示全部楼层
当在不同电脑上使用带有VBA(Visual Basic for Applications)的Excel文件时,可能会遇到一些问题。以下是一些常见的问题及其可能的解决方案:
1. 宏安全性问题
  • 问题:Excel的宏安全性设置可能会阻止VBA代码的执行。
  • 解决方案:确保在“信任中心”设置中启用所有宏或信任带有VBA的特定文档。
2. Excel和VBA版本兼容性
  • 问题:不同版本的Excel可能对VBA的支持存在差异。
  • 解决方案:尽量使用与原始电脑相同或更新的Excel版本来打开和运行带有VBA的Excel文件。
3. 引用丢失或损坏
  • 问题:Excel文件中的VBA代码可能引用了其他库或文件,这些引用在新电脑上可能不存在。
  • 解决方案:检查VBA编辑器中的引用设置,确保所有必要的库都已正确引用。如果有缺失,需要在新电脑上安装相应的库或组件。
4. 文件路径问题
  • 问题:VBA代码中可能包含硬编码的文件路径,这些路径在新电脑上可能不存在。
  • 解决方案:修改VBA代码中的文件路径以适应新电脑的环境。或者,使用相对路径而不是绝对路径来避免此类问题。
5. 操作系统和区域设置差异
  • 问题:不同的操作系统或区域设置可能会影响Excel和VBA的行为。
  • 解决方案:确保新电脑的操作系统和区域设置与原始电脑相匹配,或调整VBA代码以适应这些差异。
6. VBA组件未安装
  • 问题:新电脑上可能没有安装VBA组件,导致无法运行带有VBA的Excel文件。
  • 解决方案:在新电脑上安装或启用VBA组件。这通常可以通过安装完整的Microsoft Office套件或单独安装VBA支持来实现。
7. 网络权限和共享问题
  • 问题:如果Excel文件存储在网络位置,并且VBA代码需要从该位置读取或写入数据,则可能存在网络权限问题。
  • 解决方案:确保新电脑具有适当的网络权限来访问和修改存储在网络位置上的Excel文件。
综上所述,当在不同电脑上使用带有VBA的Excel文件时,可能会遇到多种问题。为了避免这些问题,建议在传输文件之前仔细检查并测试VBA代码,同时确保新电脑具有与原始电脑相似的环境和配置。

成长作文网:http://www.sjzwndj.cn

成长作文网:http://www.sjzwndj.cn

TA的精华主题

TA的得分主题

发表于 2024-4-30 08:04 | 显示全部楼层
朋友,您好!
我来帮您分析一下这问题,不一定能帮上忙,只是给些解决问题的思路。

1、出问题的vbBlack是什么?
~VBA代码中有很多常量,如vbBlack、vbGreen、vbYes、vbNo……,常量的作用是让编程者能直观地编程(而不用记住它们实现代表的值)。
~光看名字就知道vbBlack表示黑色,vbGreen表示绿色,vbYes表示是,vbNo表示否。
~但只要用“MsgBox vbBlack”进行输出测试,很容易就能知道它们的真实值。
~vbBlack实际的值为0,vbGreen实际的值为65280,vbYes实际的值为6,vbNo实际的值为7。
~在代码运行时,必须将这些常量转换为值才能执行,负责对常量进行解释的应该就是VBA6.DLL这个文件。
(这一点我是从楼主的错误提示猜出来的,别怪我猜,平常用得好好的,谁没事去研究这个呢?)
~一旦系统无法识别vbBlack、vbGreen等常量,可能便会出现楼主所说的一系列离奇事件。

2、临时解决办法。
~既然出错的原因找到了(前提是我上述的分析没错),那么,简单修改一下代码便能暂时解决问题。
~如楼主的截图所示,只要将Me.Label4.ForeColor = vbBlack改为Me.Label4.ForeColor = 0(vbBlack实际的值为0,上面已提过),其它类似的错处也如法炮制即可。
~这样一来,在所有电脑上运行该代码,都不存在常量解释的过程,也就用不上VBA6.DLL了。
~把所有(可引起错误)的常量都更改为值,既然常量不存在了,就不会出现“无法识别常量”的尴尬了。

3、治本的解决办法。
~就算上述方法(可能)能临时解决问题,但VBA6.DLL,光看名字都知道这是很重要的库文件,丢失它,将来还会有更多别的问题等着你。
~要一劳永逸,我的建议是把那一台电脑上的Office卸掉后重新安装。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 06:54 , Processed in 0.039199 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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