excel – VBA最终用户将Microsoft Office 2007升级到2010(VBA 6到VBA7)的问题以及对文档,帮助和提示的需求. (足够的关键字)

作为典型的小型企业用户,当我的笔记本电脑坏了,我就升级到Office 2010(2007年不再上市).现在我有一堆快速而肮脏的VBA与旧的工作表一起使用.他们都不是编程杰作,但那些工作并完成了excel和office 2007的工作.

现在我尝试在Office 2010上使用我的旧东西,一切都有点可用.有两天我搜索了网页,试图找到最终用户的任何文档,没有运气.我找到了很多针对专业程序员的博客,他们希望制作防弹代码来提供从Office 0到Office2010,32位到64位(这里没有8位?)的任何内容,但没有一篇文章谈到主要业务,最终用户拥有大量自制编码才能生存一天.

如何使我的旧版2007 VBA与2010一起使用?

不,我不需要它向后兼容任何东西,它足以使我的新计算机和新软件(在我的情况下它是64位,如果有人想知道).我只需要知道为什么我的代码不再起作用,以及如何处理它.
我真正想要的是一些指向真实信息的指针,如果有的话!
当然,我可以将我的每一段代码复制粘贴到程序员的讨论论坛,嘲笑,几周后我可能会让其中一些工作,但我真正需要的是写给基本VBA用户的真实信息.我需要学习这个.

那么你的问题是什么?

发生了什么变化?

缺少日历active-X组件.我找到了解决方案:http://answers.microsoft.com/en-us/office/forum/officeversion_other-customize/missing-calendar-control/03ad5d05-ca3f-4081-9989-e757223ebdde现在我只需重做我所有表格上的每个日历……谢谢.

Textbox.Text无法正常工作,我找到并运行Microsoft Excel代码兼容性检查器(CII),它显示我有几千个“已弃用”的Textbox.Text元素 – “可能包含删除的项目对象模型” – 什么?

它一直在变得越来越好,同样的微软软件说:
“TYPE:DEPRECATION
ITEM:[xls] SmartTagRecognizer.FullName
网址:http://go.microsoft.com/?linkid=9719761
代码:MyFullName = ThisWorkbook.FullName“”
没有解释……(顺便说一句,只有这样才能阻止Inspector并看到结果是CRT-ALT-DEL -Stop ……)

我访问了检查员提供的链接,没有帮助.

我几次运行Inspector,每次都会得到不同的结果.现在这很有趣.

我听到你的问题,现在告诉我你的问题

我从哪里开始.这是一个.
我有一个表单,用户可以进行新的“约会”,保存时,VBA创建一段代码和新的Shape到日历工作表(和Outlook,但这不是重点).当用户返回并单击该形状时 – 按钮 – Button会运行一段已创建的代码.这是代码:

Private Sub myMacro2001_Click()
    Dim meetingId As Integer
    meetingId = 2001
    Load formHours
    Call formHours.selectMeeting(meetingId)
    formHours.Show vbModeless
End Sub

这是假设的,并且在2007年做了,打开表格形式,并为2001年的会议存储了信息(meetingId)

而formHours中的代码开头为:

Sub selectMeeting (ByRef IdNo As Integer) ’Bring in the meeting ID
Meeting = IdNo
    ….

不是很优雅,但它有效.不再这样做了.

如果你可以帮助我解决这个问题,我很感激,但如果你告诉我我应该在哪里找到答案会更好.
发生了什么变化?以前工作过,不再了.该怎么办?

(PS.我知道我的代码很糟糕,但它确实有用……我只是想知道发生了什么变化,我该如何改变.

Ps.P是的我知道我应该问微软,但你知道那是怎么回事…)

跟进

在Barrowc和其他人提出一些建议后,我设法解决了一些问题.将Text.Text更改为Text.Value会创建一堆新问题,一些Text-Values用于公式,现在我需要更改它们Val(FooTextBox.Value)

真正令人惊讶的是,2010年似乎非常缓慢!我在办公室并排跑2007年和2010年,2007年获胜.我的一名工人已经使用2007年的客户开具发票,当时2010年还在开放!有趣的是,自2007年以来,AMD Athlon X2双核内存有限,2010年我的新款笔记本电脑采用Core i7-740QM,6 GB,均在win7-64上.我上网并没有发现任何关于Office 2010上的VBA7比Office2007上的VBA6慢得多的抱怨.我不知道这是不是我的问题,但我的员工投票支持2007年的单身……

最佳答案
对于所有TextBox实例,将.Text更改为.Value

SmartTagRecognizer问题似乎是误报,所以不需要采取任何行动

关于表单的错误,您可以尝试以这种方式创建表单,看看它是否有帮助:

Private Sub myMacro2001_Click()

Dim meetingId As Integer
Dim fmHours As formHours

meetingId = 2001
Set fmHours = New formHours

fmhours.selectMeeting meetingId
fmHours.Show vbModeless

End Sub

此外,您可以将Sub selectMeeting更改为Public Sub selectMeeting

有关Office 2007和Office 2010之间VBA实际差异的文档似乎有点稀疏. This page特别提到32位ActiveX控件(自定义和内置)在64位版本的Office 2010中不起作用.因此,这可能是您问题的根源.

还有一个来自Microsoft here的引用:

Will a 64-bit version of the Office 2010 product be available?

Yes, 64-bit Office 2010 product
upgrades will be available. However
we strongly recommend most users
install 32-bit version of Office 2010
on both 32 and 64-bit Operating
Systems because currently many common
add-ins for Office will not function
in the 64-bit edition.
The 64-bit
installation of Microsoft Office 2010
products will be available for users
who commonly use very large documents
or data set and need Excel 2010
programs to access greater than 2GB of
memory. There may be technical issues
with the 64-bit version and in order
to install a 64-bit version of Office
2010 product users must have a 64-bit
supported operating system on their
PC.

(我的重点)

如果可以,请尝试安装到32位版本的Office 2010

转载注明原文:excel – VBA最终用户将Microsoft Office 2007升级到2010(VBA 6到VBA7)的问题以及对文档,帮助和提示的需求. (足够的关键字) - 代码日志