Ошибка 438 макросы

Есть файл, работающий уже лет 7. На странице кнопка, при открытии проверяется контрольное поле и в зависимости от этого кнопка активна или нет (.Enable=True or False). Файл работал в нескольких версиях оффиса. Последнее время на 2010 и 2013 (основная версия). В результате последнего апдейта оффиса стало появляться сообщение, приведенное в описании темы. Кроме того, ранее в режиме конструктора можно было просмотреть свойства объекта (кнопки, к примеру) на листе, теперь же вызываются свойства листа, содержащего объект.
Проверил на соседней машине, оффис 2010 СП2 без последних апдейтов — все ОК. Выполнил обновление — картина та же, что описана выше…

Кто-нить сталкивался с подобной проблемой? Спасибо!

ЗЫ: Кстати, подобную проблему нашел в архиве за 2012, но на ХР у меня не возникало подобных ошибок…

http://www.planetaexcel.ru/forum/?PAGE_NAME=read&FID=8&TID=42275

Ok so I’m definitely a novice at VBA but I’m learning. As far as I can tell there no reason my code shouldn’t be running fine, and has in the past. This error keeps popping up though. What the intention is I’m making a sheet that automatically updates the other sheets when you add a person to the main sheet. The code seems to work and has, but it is suddenly throwing this error and I can’t figure out why. I’ve looked around but none of the solutions seem to be remotely relevant to my issue. Any help at figuring out exactly where the error is would be greatly appreciated!

The following is where the debugger is saying the error is:

Private Sub Worksheet_Activate()
    ThisWorkbook.UpdateSheets (Week2)
End sub

And this is the function being called:

Public Function UpdateSheets(ByRef w As Worksheet)
HowManyPeople
With w
    .Columns("A:W").HorizontalAlignment = xlCenter
    Dim i As Integer
    Dim j As Integer
    For i = 1 To x
        If IsEmpty(.Cells(i, 2)) Then
            For j = 2 To 12
                .Cells(i + 4, j).Borders.LineStyle = xlContinuous
                If j <> 12 Then
                    .Cells(i + 4, j).Interior.ColorIndex = 2
                    .Cells(i + 4, j).Locked = False
                Else
                    .Cells(i + 4, j).Interior.ColorIndex = 15
                    .Cells(i + 4, j).Locked = True
                End If
                If j = 2 Then
                    .Cells(i + 4, j).Value = Week1.Cells(i + 4, j)
                Else
                    .Cells(i + 4, j).Value = "0"
                End If
            Next j
        End If
    Next i
    i = x + 5
    Do
        For j = 2 To 12
            .Cells(i, j).Borders.LineStyle = xlNone
            .Cells(i, j).Interior.ColorIndex = 2
            .Cells(i, j).Locked = True
            .Cells(i, j).Value = ""
        Next j
        i = i + 1
    Loop Until IsEmpty(.Cells(i, j))
End With

End Function

the function HowManyPeople is a basic row counting method. x is a public workbook variable given value in the HowManyPeople method. Week1 and Week2 are the technical names (not displayed name) of the worksheets

Исправление ошибки выполнения 438 — как исправить ошибку выполнения 438 в Office 2010

Ошибка выполнения 438 часто обнаруживается при запуске макросов Microsoft Excel и Visual Basic. Ошибка возникает, когда макросы, которые вы пытаетесь использовать, являются неправильными или ошибочными и, как правило, препятствуют максимально плавной работе Excel. Если у вас есть эта ошибка на вашем компьютере, вы должны быть уверены, что сможете исправить ее наиболее эффективным способом.

Эта ошибка часто появляется в таком формате:

  • Ошибка времени запуска «438»:
  • Объект не поддерживает это свойство или метод

Сама ошибка вызвана используемым вами макросом или попыткой использовать устаревшие функции (если вы создали макрос в более ранней версии Office и теперь позволяете ему работать в Office 2010), или если макрос просто не работает. Это вообще не работает. Эту проблему можно решить, исправив макрос, который вы пытаетесь использовать, или восстановив установку Microsoft Office на вашем компьютере.

438 Первым шагом в устранении ошибки является удаление подключаемого модуля Microsoft Works для Office. Это часто вызывает конфликты с программным обеспечением Office. Это можно сделать, нажав «Пуск»> «Панель управления»> «Установка и удаление программ», а затем «Плагин Microsoft Works». Его удаление должно остановить дальнейший конфликт в вашей системе.

После удаления этого плагина следует использовать Microsoft Hotfix # 50356. Он специально разработан для решения проблем с ошибкой 438 и, в основном, позволяет вашему компьютеру работать максимально плавно, не удаляя другое программное обеспечение, которое вы хотите использовать.

Вам также следует использовать так называемую программу «Очиститель реестра», чтобы исправить потенциальные ошибки в базе данных реестра вашего компьютера. База данных реестра — это центральная система хранения всех файлов, настроек и настроек, которые Windows использует для ее запуска. Хотя эта база данных очень важна для вашего компьютера, она постоянно вызывает множество потенциальных проблем для вашего компьютера. Ошибка Runtime 438 может возникнуть, если база данных реестра повреждена, поэтому рекомендуется очистить эту базу данных вашей системы с помощью средства очистки реестра.

Выполнение этих шагов не только решит потенциальные проблемы на вашем компьютере, но и исправит ошибки, из-за которых ваш компьютер отображает 438 ошибок рабочего времени. Вы должны выполнить каждый шаг, чтобы исправить ошибку 438 навсегда.

Return to VBA Code Examples

This article will demonstrate how to Fix VBA Error 438 – Object Doesn’t Support Property or Method.

Error 438 is a frequently occuring error in Excel VBA and is caused by either omitting a property or method when referring to an object, or by using a property or method that is not available to an object in the VBA code.

Check the VBA code to Fix Error 438

Let us examine the following code:

Sub RemoveWorksheet()
  Dim wb As Workbook
  Dim ws As Worksheet
  Dim sheetName As String
  sheetName = "Sheet 1"
  Set wb = ActiveWorkbook
  For Each ws In wb.Sheets
     If ws = sheetName Then
        wb.Sheets(sheetName).Delete
        Exit For
     End If
  Next ws
End Sub

If we run this code, Error 438 will occur.

VBAError438 errormsg

To resolve this issue, we click on Debug to see where the error is occurring.

VBAError438 debug

This line of code is trying to equate the worksheet (depicted by the variable ws) to the sheet name. This is not possible as the worksheet is an object but the sheet name is a string so Error 438 is therefore returned.

To solve this, compare the string sheetName to the name property of the worksheet object:

ws.name = sheetName

Now the code runs without issue!

To show a list of all the properties or methods that are available to the worksheet object, we can type a dot (.) after the object.

VBAError438 properties

This invokes the VBA Editor’s Intellisense feature. To make sure it’s turned on, in the Menu, select Tools > Options.

VBAError438 auto list members

Make sure Auto List Members is checked and then click OK.

NOTE: This is usually on by default.

You can also find a list of all the Properties, Methods and Events for an Excel Object in the Object Browser.

In the Menu, select View > Object Browser or press F2 (See more VBE shortcuts).

VBAError438 menu object browser

A list of classes and objects will appear in the left hand side of the screen. If you click on the object you wish to use (eg: Workbook), a list of all the Properties, Methods and Events that that object supports will appear in the right hand side of the screen. (eg: Members of Workbook).

VBAError438 object browser

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
vba save as

Learn More!

Понравилась статья? Поделить с друзьями:
  • Ошибка 438 макрос
  • Ошибка 4337 камминз
  • Ошибка 438 вба
  • Ошибка 4336 эвотор
  • Ошибка 4372 jungheinrich