Как типичный пользователь малого бизнеса, когда мой ноутбук сломался, я ДОЛЖЕН перейти на Office 2010 (2007 больше не продается). Теперь у меня есть куча быстрых и грязных VBA, которые идут с моими старыми листами. Никто из них не был шедевром программирования, но они работали и работали с Excel и Office 2007.
Теперь я попытался использовать свои старые вещи в Office 2010, и все это совсем немного пригодно для использования. Два дня я искал в Интернете, пытаясь найти какую-либо документацию для конечного пользователя, но не повезло. Я нашел много блогов, предназначенных для профессиональных программистов, которые надеются создать пуленепробиваемый код для обслуживания от Office 0 до Office2010, от 32 до 64 бит (здесь нет 8 бит?), Но ни в одной из статей не говорилось об основной деятельности. , Конечный пользователь с большим количеством самодельного кодирования, чтобы выжить в день.
Как мне заставить мой старый VBA 2007 работать с 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, которые «устарели» - «Потенциально содержит удаленные элементы, объектная модель »- Что?
Все лучше и лучше, то же самое программное обеспечение Microsoft заявило:
«ТИП: УСТАРЕВАНИЕ
ПУНКТ: [xls] SmartTagRecognizer.FullName
URL: http://go.microsoft.com/?linkid=9719761
КОД: MyFullName = ThisWorkbook.FullName »»
Никаких объяснений ... (Кстати, единственный способ остановить Инспектора и увидеть результаты был CRT-ALT-DEL -Stop ...)
Я посетил ссылки, данные инспектором, там никакой помощи.
Я запускал Инспектора несколько раз, и он каждый раз давал разные результаты. Теперь это интересно.
Я слышу вашу проблему, теперь покажите мне вашу проблему
С чего начать. Вот один.
У меня есть форма, где пользователь может назначить новую «встречу», при сохранении VBA создает фрагмент кода и новую форму в форме календаря (и в Outlook, но здесь дело не в этом). Когда пользователь возвращается и нажимает эту форму - кнопка - Кнопка запускает фрагмент кода, который был создан. вот код:
Private Sub myMacro2001_Click()
Dim meetingId As Integer
meetingId = 2001
Load formHours
Call formHours.selectMeeting(meetingId)
formHours.Show vbModeless
End Sub
Предполагается, и было сделано еще в 2007 году, открыть форму формы Часы с информацией, сохраненной для этого совещания 2001 (meetingId)
И код в форме Часов начинается как:
Sub selectMeeting (ByRef IdNo As Integer) ’Bring in the meeting ID
Meeting = IdNo
….
Не очень элегантно, но это сработало. Больше не делает этого.
Если вы поможете мне с этим делом, я ценю, но было бы еще лучше, если бы вы сообщили мне, где я должен был найти ответ.
Что изменилось? Работал раньше, больше нет. Что делать?
(PS. Я знаю, что мой код дрянной, но он работал… И я просто хотел бы узнать, что изменилось, и как мне нужно изменить.
Ps.Ps Да, я знаю, что должен спросить Microsoft, но вы знаете, как это ...)
Followup
После некоторого любезного совета от Барроука и других мне удалось исправить некоторые проблемы. Изменение Text.Text на Text.Value создало кучу новых проблем, некоторые из текстовых значений использовались в формулах, и теперь мне нужно было их изменить Val (FooTextBox.Value)
Что действительно удивительно, так это то, что 2010 год кажетсяочень медленно! Я побежал 2007 и 2010 бок о бок в офисе, и 2007 выиграл руки вниз. Один из моих работников уже выставил счет клиенту, используя 2007 год, когда 2010 все еще открывался! Забавно, но с 2007 года он работал на двухъядерном процессоре AMD Athlon X2 с ограниченной памятью, а 2010 год был на моем новом ноутбуке с Core i7-740QM, 6 ГБ, оба на win7-64. Я просматривал сеть и не нашел никаких жалоб на то, что VBA7 в Office 2010 намного медленнее, чем VBA6 в Office2007. Я не знаю, является ли это только моей проблемой, но мои сотрудники проголосовали за единодушное мнение ...