Vba excel ошибка 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!

Frequently encountering Run-time error ‘438′: Object doesn’t support this property or method whenever you try to start work in Excel?

Don’t have any idea what causing this Excel runtime error 438 and how to fix it?

Well don’t get worried about it, as this post will help you to get the best fixes to resolve Excel error 438: Object doesn’t support this property or method error.  Not only this, but you will also get complete information about this Excel error 438.

What Is Excel Runtime Error 438?

Mostly it is seen that the user stuck into such annoying error code in macro when the object doesn’t support by the property or method.

If any Excel user creates a toolbar in Excel by using visual basic code then also the following error code occurs:

Run-time error “438”: Object doesn’t support this property or method

To recover lost Excel objects, we recommend this tool:

This software will prevent Excel workbook data such as BI data, financial reports & other analytical information from corruption and data loss. With this software you can rebuild corrupt Excel files and restore every single visual representation & dataset to its original, intact state in 3 easy steps:

  1. Download Excel File Repair Tool rated Excellent by Softpedia, Softonic & CNET.
  2. Select the corrupt Excel file (XLS, XLSX) & click Repair to initiate the repair process.
  3. Preview the repaired files and click Save File to save the files at desired location.

Error Detail:

Error code: Run-time error ‘438′

Error name: Object doesn’t support this property or method

Error Screenshot:

Object doesn't support this property or method

What Are The Circumstances In Which Run-Time Error 438 In Excel Occurs?

There is not any specific reason for encountering this Excel runtime error 438: Object doesn’t support this property or method.

It is found that this Excel runtime error 438 occurs under several circumstances. So check this out:

  • When anyone tries to make use of variables for workbooks and worksheet names.
  • When executing a program within which form is already allotted to a variable. And that specific variable is now been used for accessing control over the form.
  • This error also occurs when an installed AMD driver becomes out of date.
  • The Macro you are using is maybe a wrong one or maybe it’s not working. Ultimately this will throw Excel runtime error 438.
  • Runtime error 438 also encounters when you are trying to execute the designed macro of MS Excel previous version, into the latest MS Excel application.
  • At the time of creating a custom toolbar in their Excel worksheet. User encounters a task failure error message i.e. “Object doesn’t support this property or method: Run-Time Error 438.
  • In another instance in which this error occurs, the user tries to run the Microsoft VB for Excel macro. This macro tries to set the Excel worksheet properties but fails to complete this task which ultimately results in runtime error 438 in Excel.

After catching the complete idea of what can be the reasons for the Excel runtime error 438. Now you can easily make a keen check over the sections where this problem can generate.

How To Fix Runtime Error 438 In Excel?

Fix 1# MS Office Version Supporting Issue

Runtime error 438 in Excel also encounters while trying to work with the outdated macro function designed in older version MS Office application in some latest version of MS Office.

For this, I will recommend you to, use your macro in the respective version of MS Office application in which you have designed it. OR else you can get help from this helpful post [FIXED]: “This File is Not in Recognizable Format” Excel Error.

Fix 2# Check The Codings

As we have already discussed that Excel Runtime Error 438 also occurs due to the incorrect creation of a macro. Or when the user tries t0 run the macro which Excel objects don’t support property or method.

So, to resolve this Excel Object doesn’t support this property or method error user needs to check or rewrite the coding within the VBA module.

If you are not having good command over the programming then you can contact Microsoft Advisory Services.

Fix 3# Uninstall Microsoft Works Add-in:

It is seen that Microsoft works add-in generates this Excel Object doesn’t support this property or method error.  So, uninstall this add-in just by following these steps:

  • Go to the Start menu then click the Settings option and then on the Control Panel.
  • Now tap to the Add / Remove Programs.
  • Hit the File Location present within the Options.
  • From Uninstall/Install tab, choose the add-in suit i.e Word in Works. After then tap the Add / Remove.
  • Now carefully follow the screen instructions.
  • Restart your PC and attempt to load Microsoft Word again.

This will stop the error from occurring again because you have successfully uninstalled the problem causing Works for Word add-in the program.

Fix 4# Use Microsoft Fix-It #50356

In many cases it is found that by downloading the Microsoft Fix-It #50356 user has successfully overcome the Excel error 438: Object doesn’t support this property or method.

So, you can also download the Microsoft Fix-It Patch from this link: https://support.microsoft.com/en-in/help/2970908/how-to-use-microsoft-easy-fix-solutions After complete downloading, the wizard will assist you throughout the tasks that you have to perform.

Through this Microsoft #50356 hotfix broken registry strings that are causing the issue can easily be repaired. This patch gives new keys on behave of broken registry keys. If your registry keys are broken then your Windows application displays the error message. But after downing this new patch in your PC your Window won’t show any error regarding Object doesn’t support this property or method.

If even after trying the above fixes the problem won’t resolve then move to the next solution.

Fix 5# Disable or Uninstall Windows Antivirus Software

Sometimes installed anti-viruses on your system also cause this runtime error 438. So, by disabling or uninstalling the anti-virus software you can easily get rid of this issue.

Steps to uninstall antivirus program from your PC:

  • Open the control panel of your PC.
  • After then make double-tap to Add/Remove Programs
  • Choose the antivirus program which you want to uninstall from your PC. After then, tap to the Remove or Change/Remove option.

Disable or Uninstall Windows Antivirus Software

  • Carefully follow the on-screen instructions for removing up the antivirus program. Once it gets over, restart your PC.

Fix 6# Reinstall The Device Drivers For The Device

Reinstalling the device driver can fix Excel Runtime Error 438. Try the following steps to resolve Object doesn’t support this property or method:

  1. Go to your system taskbar and make a tap on the start button. Here you will see a search box, in this box type device manager. After then choose the Device Manager.
  2. Make a right-click on the device name you need to uninstall and choose the Uninstall option.
  3. After uninstalling the device, restart your PC.
  4. Windows will try for driver reinstallation.

Reinstall The Drivers For The Device

Fix 7: Resolve The Corruption Issue

Sometimes Excel sheet gets damaged or corrupt due to so many reasons like sudden system shutdown, software malfunction, virus attack, etc. Once the Excel spreadsheet gets corrupted /damaged you can’t access it anymore or it starts throwing error messages. So, the chances are high that some of your Excel file Objects got corrupted and thus it showing Object doesn’t support this property or method error.

Hence for the quick and easy solution to repair and restore corrupt Excel files go with the recommended option i.e Excel Repair Tool. It is the best software for repairing the damaged excel file.

* Free version of the product only previews recoverable data.

With this efficient repair tool, user can easily be able to fix all known errors that lead to corruption of excel files on Mac. It deeply scans the selected excel files without making any changes to the original content of the worksheet and fetches all the issues.  It restores all the charts, objects, hidden sheets, pictures, clip charts, and other important Excel file content.

Wrap Up:

Carefully try all the above fixes to resolve runtime error 438 in Excel as some of the listed fixes may hamper your system settings if performed incorrectly. Even after trying all the above fixes if the Excel Object doesn’t support this property or method error won’t be resolved then let us inform by commenting in our comment section.

Priyanka is an entrepreneur & content marketing expert. She writes tech blogs and has expertise in MS Office, Excel, and other tech subjects. Her distinctive art of presenting tech information in the easy-to-understand language is very impressive. When not writing, she loves unplanned travels.

First of all, you should know, that some of functions, used on the worksheet, have limitations. So my point is avoid of using them in VBA, if it is not necessary.
For example, function POWER() returns error on attempt to raise a zero to zero. An alternative is to use 0 ^ 0 combination, which is exactly doing the same, but looks more simply and operates without such error.
But also there is no embedded alternative in VBA to the FACT() function, so you can use it, or simply add your own function factor() — it’s uppon your choise.

If you just have started learning VBA, I would recomend you to use Option Explicit. It will help you to find out, which variables are not defined, and sometimes to avoid errors related to variable names missprint.

Here is your code, fixed and a little bit optimized:

Option Explicit' It is an option that turns on check for every used variable to be defined before execution. If this option is not defined, your code below will find undefined variables and define them when they are used. Good practice is to use this option, because it helps you, for example to prevent missprinting errors in variable names.

Sub Bezier()
    Dim C as Double , t As Double
    Dim k  As Long, n As Long, i As Long
    n = 3
    For i = 0 To 100
        t = i * 0.01
        Cells(i + 2, 6) = 0
        Cells(i + 2, 7) = 0
        For k = 0 To n
            C = (WorksheetFunction.Fact(n) / WorksheetFunction.Fact(k)) / WorksheetFunction.Fact(n - k)
            Cells(i + 2, 6) = Cells(i + 2, 6).Value + Cells(k + 2, 1).Value * C * (t ^ k) * ((1 - t) ^ (n - k))
            Cells(i + 2, 7) = Cells(i + 2, 7).Value + Cells(k + 2, 2).Value * C * (t ^ k) * ((1 - t) ^ (n - k))
        Next
    Next
End Sub

UPDATE
Here are some examples of factorial calculations.

    Public Function fnFact(number) ' a simple cycle example of Factorial function
    Dim tmp As Long ' new temporary variable to keep the "number" variable unchanged
    tmp = number
    fnFact = number
    While tmp > 1
        tmp = tmp - 1
        fnFact = fnFact * tmp
    Wend
End Function

Public Function fnFactR(number) ' a simple example of recursive function for Factorial calculation
    If number > 0 Then
        fnFactR = fnFactR(number - 1) * number ' function calls itself to continue calculations
    Else
        fnFactR = 1 ' function returns {1} when calculations are over
    End If
End Function

Sub Factor_test() 'RUN ME TO TEST ALL THE FACTORIAL FUNCTIONS
    Dim number As Long
    number = 170 ' change me to find Factorial for a different value
    MsgBox "Cycle Factorial:" & vbNewLine & number & "!= " & fnFact(number)
    MsgBox "WorksheetFunction Factorial:" & vbNewLine & number & "!= " & WorksheetFunction.Fact(number)
    MsgBox "Recursive Factorial:" & vbNewLine & number & "!= " & fnFactR(number)
End Sub

All those functions are available to calculate Factorial only for numbers before 170 inclusively, because of large result value.
So for my PC the limitation for WorksheetFunction.Fact() function is also 170.
Let me know, if your PC has different limitation for this function, — it’s quite interesting thing. :)

UPDATE2
It is recomended to use Long data type instead of Integer each type when integer (or whole number) variable is needed. Long is slightly faster, it has much wider limitations and costs no additional memory. Here are proof links:
1. MSDN:The Integer, Long, and Byte Data Types
2. ozgrid.com:Long Vs Integer
3. pcreview.co.uk:VBA code optimization — why using long instead of integer?
Thanks for @Ioannis and @chris neilsen for the information about Long data type and proof links!

Good luck in your further VBA actions!

  • Remove From My Forums
  • Question

  • Good day

    i seem to get a run-time error 438: Object doesn’t support this property or Method every time i try running my macro to automatically attach a PDF file called «Statement.xlsm»

    Please assist, i am new at this VBA 

    here is my code:

    Dim objOutlook As Object
        Dim objNameSpace As Object
        Dim objInbox As Object
        Dim objMailItem As Object
        Set objOutlook = CreateObject(«Outlook.Application»)
        Set objNameSpace = objOutlook.GetNamespace(«MAPI»)
        Set objInbox = objNameSpace.Folders(1)
        Set objMailItem = objOutlook.CreateItem(0)
            ‘Declare a String variable for the recipient list, and an Integer variable
            ‘for the count of cells in column A that contain email addresses.
            Dim strTo As String
            Dim i As Integer
            strTo = «»
            i = 1

        ‘Loop through the recipient email addresses to build a continuous string that separates recipient addresses by a semicolon and a space.
        With Worksheets(«Statement») ‘change sheet name where list is kept.
        Do
        strTo = strTo & .Cells(i, 25).Value & «; «
        i = i + 1
        Loop Until IsEmpty(.Cells(i, 25))
        End With
        ‘Remove the last two characters from the recipient string, which are
        ‘an unnedded semicolon and space.
        strTo = Mid(strTo, 1, Len(strTo) — 2)
        ‘Display the email message with the attached active workbook.
        With objMailItem
        .To = strTo
        .CC = «Eutychus@gcis.gov.za»
        .Subject = «Media buying Statement»
        .Body = _
        «Hello everyone,» & Chr(10) & Chr(10) & _
        «Here’s an example for attaching the active workbook» & Chr(10) & _
        «to an email with multiple recipients.»

        Dim Attachment1 As String

        Attachment1 = «http://ecms.gcis.gov.za/sites/docs/fin_mngmnt/47 Systems/4-7-3 Media Buying System/4-7-3-1 Media Buying Statements/Statement.xlsm.pdf»

         .addAttachments
    Attachment1
     ‘(this is were is says i must
    debug) 

        .Display ‘Change to Send if you want to just send it.

        End With
        ‘Release object variables from system memory.
        Set objOutlook = Nothing
        Set objNameSpace = Nothing
        Set objInbox = Nothing
        Set objMailItem = Nothing

    Thank you in advance

Answers

  • The correct would be:

      .Attachments.Add Attachment1

    However, I couldn’t get the file in the URL indicated by Attachment1, because the URL http://ecms.gcis.gov.za/sites/docs/fin_mngmnt/47 Systems/4-7-3 Media Buying System/4-7-3-1 Media Buying Statements/Statement.xlsm.pdf doesn’t exist. Are you sure it is
    correct?


    Felipe Costa Gualberto — http://www.ambienteoffice.com.br

    • Proposed as answer by

      Thursday, January 22, 2015 3:34 AM

    • Marked as answer by
      Fei XueMicrosoft employee
      Thursday, January 29, 2015 10:47 AM

Home / VBA / VBA Object Doesn’t Support this Property or Method Error (Error 438)

VBA error 438 occurs when you try to use a property or method that does not support by that object. as you know all objects have some properties and methods that you can use but there could be a situation when using a property or method that does not apply to a particular object.

Let’s take an example to understand this: with the worksheet object there comes up a method to select the worksheet.

Now as you know you can activate a workbook but there is no method that you can use to select a workbook because you cannot select a workbook, you can only activate it.

So when you try to use this method with the workbook object you’ll get the runtime error 438. Even you can see this method is not in the list of properties and methods of the workbook object.

Now you can understand that it can be a mistake on the end of the person who writes the code and can be committed even if you are proficient in VBA.

Note: When you have written a code in the latest version of Microsoft Excel and now you try to run it in an older version, there’s could be a chance that that version doesn’t have a method or a property for the object you are using.

The best way to deal with this error 438 (Object Doesn’t Support this Property or Method) you need to be aware of the properties and methods that are supported by the object you are using.

When you define an object, you can see the list of all the properties and methods when you type a dot (.).

This list can help you to decide if the method you want to use is there or not. And if it’s not there you need to find a different way to write a code for the task that you want to accomplish. Otherwise, you can also open the object browser (F2) to see the properties and methods you have with an object.

We already know that this is the most frustrating Microsoft Visual Basic Runtime Error 438 VBA issue which you are getting in day-to-day life, So today we are surely here going to show you some top best accessible methods and solutions and some tips and tricks to get rid out of it permanently from your Windows PC as well on your device too if you are facing on it also.

This shows an error code message like,

Run time Error 438

When you are running a Visual Basic or running the Microsoft Excel 2000, then you might get this error problem. This error occurs when you are trying to use variables for workbooks & worksheet names. This Microsoft Visual Basic Runtime Error 438 VBA may also happen when you are running a program in which a form is assigned to a variable & that variable is used to access a control on the form. This error includes your PC system crashes, virus infection or sometimes freezes too. It also starts when you are trying to execute the BW query. This error may occur if the installed AMD drivers out of date.

Causes of Microsoft Visual Basic Runtime Error 438 VBA Issue:

  • Microsoft Visual Basic runtime
  • Windows PC error issue
  • An object does not support this property or method epaceengagement

So, here are some quick tips and tricks for efficiently fixing and resolve this type of Microsoft Visual Basic Runtime Error 438 VBA Windows PC Code issue from you permanently.

How to Fix & Solve Microsoft Visual Basic Runtime Error 438 VBA Issue

1. Disable the Enhanced Protected Mode from Internet Explorer –

Disable the Enhanced Protected Mode from Internet Explorer

  • Open Internet Explorer
  • Click on the tools option there, on the right side
  • Click on the Internet Options there
  • On the Advanced option,
  • Uncheck the option box for “Enable Enhanced Protected Mode.”
    It’s under the Security tab
  • Now, click on Apply to apply these settings
  • Click on OK to save this configuration
  • After completing, close all the tabs there
  • That’s it, done

By disabling the Enhanced Protected Mode from your Internet Explorer browser can get rid out of this Microsoft Visual Basic Runtime Error 438 vba excel code problem.

2. Install an Automatic Repair Tool on your Windows PC –

Install an Automatic Repair Tool

  • Go & Search for Automatic Repair Tool on the Internet
  • Download it from there
  • Now, Click on ‘RUN‘ & Install it
  • Open it and use the automatic repair tool
  • After finish, close the tab
  • That’s it, done

By installing an automated repair tool on your Windows PC will fix this Runtime Error 438 excel vba access problem quickly from you.

3. Uninstall Microsoft Works Add-in on your Windows PC –

Uninstall Microsoft Works Add-in

  • Click on the Start menu
  • Search for Control Panel or directly open it
  • Open ‘Add or Remove Programs‘ tab there
  • Click on the file location in the options tab
  • On the Uninstall/Install option,
  • Select the Words in Works Suite Add-in
  • Again, click on the Add or Remove Programs there
  • Follow the ON Screen instructions
  • After completing, close all the tabs from there
  • Restart your PC
  • Load the Microsoft Word again
  • That’s it, done

By uninstalling the Microsoft Works Add-in can get back you from this type of excel Runtime Error 438 VBA code issue.

4. Use a Registry Cleaner to Clean the Registry of your Windows –

Clean or Restore the Registry

Clean your registry by any registry cleaner software so that it can fix and solve this VBA Runtime Error 438 object doesn’t support access problem from your PC completely.

5. Reinstall the Drivers for the Device on your PC –

Reinstall the drivers for the device

By Reinstalling the drivers for the device will fix your Visual Basic outlook Runtime Error 438 fix problem.

6. Run a Full Scan of your Windows PC for Malware or Virus –

Scan your PC for Virus/Malware Microsoft Visual Basic Runtime Error 438 VBA

  • Go to the start menu
  • Search or go to the “Microsoft Security Essentials” there
  • Click on it and opens it there
  • A Pop-up will open there
  • Check the ‘Full‘ option there to scan thoroughly
  • After, click on the ‘Scan Now‘ option to scan carefully
  • After scanning, close the tab
  • That’s it, done

By running a full scan of your PC can get rid out of this Runtime Error 438 word Excel VBA problems from your PC completely.

7. Create a System Restore Point on your Windows PC –

Fix System Restore Features Microsoft Visual Basic Runtime Error 438 VBA

  • Go to the start menu
  • Search or go to the ‘System Restore.’
  • Clicks on it and open it there
  • After that, tick on the “Recommended settings” or ‘Select a restore point‘ there
  • After selecting, click on the Next option there
  • Now, follow the wizard
  • After completing, close the tab
  • That’s it, done

So by applying this method on your Microsoft Windows PC can quickly solve this VBA Runtime Error 438 excel MAC issue.

OR

Run System Restore & Create a Restore Point Microsoft Visual Basic Runtime Error 438 VBA

  • Go to the start menu
  • Search or go to the ‘System Properties.’
  • Click on it and opens it
  • After that, go to the “System Protection” option there
  • Now, click on the “System Restore” option there
  • & Create a Restore point there
  • After completing, close the tab
  • That’s it, done

Run a system restore and creating a new restore point by any of these two methods can solve this Visual Basic Runtime Error 438 ecw excel mac problem from your PC completely.

8. Troubleshoot & Run an Automatic Windows Repair on your PC –

Repair your PC (Computer) Microsoft Visual Basic Runtime Error 438 VBA

  • Go to the start menu
  • Search or go to the PC settings there
  • Click on the ‘Troubleshoot‘ option there
  • After opening, click on the ‘Advanced options‘ there
  • Then, click on the “Automatic Repair” option there
  • After troubleshooting, close the tab
  • That’s it, done

By running an automatic repair of your PC can get rid out of this Microsoft Visual Basic excel vba Runtime Error 438 problem from your PC.

9. Disable or Uninstall your Windows Antivirus Software on your PC –

Disable or Reinstall Antivirus Software Microsoft Visual Basic Runtime Error 438 VBA

By Disabling or uninstalling your antivirus software can quickly fix and solve this Runtime Error 438 object doesn’t support this property or method epaceengagement problem.

10. Restart your Windows PC [OPTIONAL] –

Restart your Computer Microsoft Visual Basic Runtime Error 438 VBA

  • Go to the Start menu
  • Click on the right side of ‘Shutdown.’
  • Click on Restart option there to restart
  • That’s it, done

If this is your first time you have seen this stop error screen then by restarting your PC again will quickly fix this Microsoft Visual Basic Runtime Error 438 VBA problem.

These are the quick and the best way methods to get quickly rid out of this Microsoft Visual Basic Runtime Error 438 VBA Windows PC Code problem from you entirely. Hope these solutions will surely help you to get back from this Microsoft Visual Basic Runtime Error 438 VBA issue.

If you are facing or falling in this Microsoft Visual Basic Runtime Error 438 VBA Windows PC Code problem or any error problem, then comment down the error problem below so that we can fix and solve it too by our top best quick methods guides.

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

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

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

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

Понравилась статья? Поделить с друзьями:
  • Vba excel очистить текст
  • Vba excel очистить содержимое ячейки
  • Vba excel очистить содержимое ячеек
  • Vba excel очистить пустые ячейки
  • Vba excel очистить комбобокс