Что такое цель vba excel

Excel vba tutorial – how to write code in a spreadsheet using visual basic

Download Internet Files Using VBA

rxFramework.urlDownloadToFile

The .urlDownloadToFile method offered by the Ribbon Commander framework aims to replace the following API call (32 & 64 bit declarations shown), if your application needs to download files from the web using VBA.#If VBA7 Then    Private Declare PtrSafe Function URLDownloadToFile Lib «urlmon» Alias «URLDownloadToFileA» _        (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long#Else    Private Declare Function URLDownloadToFile Lib «urlmon» Alias «URLDownloadToFileA» _        (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long#End If

Описание функции

Функция LET на момент добавления в справочник (25 апреля 2020 года) находилась в «быстром кругу» тестирования программы Office Insider, это значит, что функция не только не доступна обычным пользователям Microsoft 365 (ранее Office 365), но и не все тестировщики имеют возможность ею воспользоваться.

Более того, Microsoft еще даже не определилась в какой категории будет находиться данная функция и, при попытке осуществить поиск в самом приложении Excel — выдает категорию «Рекомендованные», которая по сути является опциональной, если не было найдено точного соответствия. Естественно, вставить функции не вводом с клавиатуры, а через вкладку «Формулы» — не получается, она попросту отсутствует во всех категориях.

Поэтому данная функция помещена в категорию «Экспериментальные».

Итак, для чего предназначена функция LET. У нее два основных предназначений: первое — это разгрузить громоздкие вычисления, а второе — ускорить процесс вычислений. Кроме того, LET решает еще одну важную задачу для пользователя — а именно, упрощает повторные редактирования сложных функций.

Example #1: Display a Message when Users Open the Excel Workbook

In the VBA Editor, select Insert -> New Module

Write this code in the Module window (don’t paste!):

Sub Auto_Open()
MsgBox («Welcome to the XYZ Workbook.»)
End Sub

Save, close the workbook, and reopen the workbook. This dialog should display.

Ta da!

How is it doing that?

Depending on your familiarity with programming, you may have some guesses. It’s not particularly complex, but there’s quite a lot going on:

  • Sub (short for “Subroutine): remember from the beginning, “a group of VBA statements that performs one or more actions.”
  • Auto_Open: this is the specific subroutine. It automatically runs your code when the Excel file opens — this is the event that triggers the procedure. Auto_Open will only run when the workbook is opened manually; it will not run if the workbook is opened via code from another workbook (Workbook_Open will do that, learn more about the difference between the two).
  • By default, a subroutine’s access is public. This means any other module can use this subroutine. All examples in this tutorial will be public subroutines. If needed, you can declare subroutines as private. This may be needed in some situations. Learn more about subroutine access modifiers.
  • msgBox: this is a function — a group of VBA statements that performs one or more actions and returns a value. The returned value is the message “Welcome to the XYZ Workbook.”

In short, this is a simple subroutine that contains a function.

When could I use this?

Maybe you have a very important file that is accessed infrequently (say, once a quarter), but automatically updated daily by another VBA procedure. When it is accessed, it’s by many people in multiple departments, all across the company.

  • Problem: Most of the time when users access the file, they are confused about the purpose of this file (why it exists), how it is updated so often, who maintains it, and how they should interact with it. New hires always have tons of questions, and you have to field these questions over and over and over again.
  • Solution: create a user message that contains a concise answer to each of these frequently answered questions.

Real World Examples

  • Use the MsgBox function to display a message when there is any event: user closes an Excel workbook, user prints, a new sheet is added to the workbook, etc.
  • Use the MsgBox function to display a message when a user needs to fulfill a condition before closing an Excel workbook
  • Use the InputBox function to get information from the user

Способы создания макросов в Excel

В Excel и других программах Microsoft Office макросы создаются в виде кода на языке программирования VBA (Visual Basic for Applications). Этот язык разработан в Microsoft специально для программ компании — он представляет собой упрощённую версию языка Visual Basic. Но это не значит, что для записи макроса нужно уметь кодить.

Есть два способа создания макроса в Excel:

  • Написать макрос вручную.
    Это способ для продвинутых пользователей. Предполагается, что они откроют окно Visual Basic в Еxcel и самостоятельно напишут последовательность действий для макроса в виде кода.
  • Записать макрос с помощью кнопки меню Excel.
    Способ подойдёт новичкам. В этом варианте Excel запишет программный код вместо пользователя. Нужно нажать кнопку записи и выполнить все действия, которые планируется включить в макрос, и после этого остановить запись — Excel переведёт каждое действие и выдаст алгоритм на языке VBA.

Разберёмся на примере, как создать макрос с помощью второго способа.

Допустим, специальный сервис автосалона выгрузил отчёт по продажам за три месяца первого квартала в формате таблиц Excel. Эти таблицы содержат всю необходимую информацию, но при этом никак не отформатированы: колонки слиплись друг с другом и не видны полностью, шапка таблицы не выделена и сливается с другими строками, часть данных не отображается.


Так выглядят таблицы с продажами автосалона в первоначальном видеСкриншот: Skillbox Media

Document Layout

For those readers seeking information on Task Panes
generally, rather than Word’s Task Panes, the first two chapters have great
relevance, the third chapter has some relevance and the XML chapter has some
extended notes on creating your own Task Pane using a compiled language.

The rest of the chapters are fairly Word specific and are
organised based on the feature sets supported by the Task Panes.

The last chapter, Ramifications and
Ravings is a ramble. It discusses the ramifications of the appearance of
the Work Pane into our GUI. Each other chapter deals with a single facet of the
Word Task Panes. Each of these chapters is then broken into three major
sections:

How to

These major sections contain the
basics for controlling that facet of the Task Panes. They are mainly example
VBA6 code samples demonstrating each of the available commands and objects.
These sections make little attempt to explain things and are structured by Task
Pane. For explanations, see the What is
it? section. To extend the samples in this section, see the
Developer References
section.

What is it?

These major sections contain longer
descriptions of the topic and its context in a workflow in an ideal world.
It tries to tie all the information from the other two sections together.
It describes the objects behind each Task Pane and how to use them to affect the
Task Panes or simulate their actions. For examples of the knowledge from this
section, see the How to
section. For full extensions of all the objects described, see the Developer References section.

Developer References

These major sections contain matrices
cross-referencing all the VBA bits and pieces that assemble into the Task Panes.
If you want to seriously muck about with code as an advanced user, these
sections are the condensed guide to life, Task Panes and everything.
You can use Word’s table sort feature to use these tables for
many purposes in the document version of this reference. For example
implementations, please see the How to
section. For explanations, please see the What is it? section.

Background

Microsoft planned to release
programmatic control once they had finished the interface properly in a future
release of Office. They forgot they have whole newsgroups full of deviant code
fiends. I am not sure though whether their surprise equals mine at the size of
this document. This was originally supposed to be a two page blurb which said
things like “If you wanna know what control id is necessary, work it our
yourself now I’ve told you where to look.” Then the Word MVP terrorists
attacked, God bless their souls, and encouraged me to finish this reference
before publication.

The title picture is my chosen visual
metaphor for people involved in a painful task, trying to clear a space to work.

Acknowledgements

All up, this reference is well over a month’s solid work,
so thanks must first go to my perpetually persevering wife, Natnitta. Thanks
also go to Beth Melton for providing a whack of data for the initial
FindControl ID’s
table, Cindy Meister for nailing the Styles and Formatting Task Pane
modification solution, Doug Robbins for code fragments, Santa Klaus for
continually prodding me to add another dozen topics and finally Mr McGhie for
identifying the need for this reference and striving to get the best out of me.

Inspiration, information, support and
blessings were in bountiful supply the whole way through from many MVPs. So,
after these fine folk have had a say, things can only get bigger and better. My
thanks to them all for their constructive and encouraging comments.

Yes, I am truly sick of Task Panes for
the moment. I am blaming Klaus because John buys me beer :-)

Bibliography

Most of this information is from
repeated experimentation with the VBE. Some information was located in:

·Microsoft Word’s Help system

·MSDN Online

Related Articles

https://wordmvp.com/FAQs/customization/ShowTaskPane.htmA practical tool to control the startup behavior of the Task Panes that
implements some of the knowledge from this reference.

Синтаксис события Worksheet.SelectionChange

Синтаксис процедуры, выполнение которой инициируется событием Worksheet.SelectionChange:

1
2
3

PrivateSubWorksheet_SelectionChange(ByValTarget AsRange)

‘Операторы процедуры

EndSub

Эта процедура VBA Excel запускается при смене на рабочем листе выделенного диапазона (SelectionChange). Она должна быть размещена в модуле рабочего листа Excel, смена выбранного диапазона ячеек которого будет инициировать ее запуск.

Аргумент Target — это новый выбранный диапазон на рабочем листе.

Шаблон процедуры можно скопировать и вставить в модуль рабочего листа, но не обязательно. Если открыть модуль нужного листа, выбрать в левом верхнем поле объект , шаблон процедуры будет добавлен автоматически:

У объекта есть и другие события, которые можно выбрать в правом верхнем поле модуля рабочего листа. Процедура с событием SelectionChange добавляется по умолчанию.

Using AutoFilter on Protected Sheets

By default, when you protect a sheet, the filters won’t work.

In case you already have filters in place, you can enable AutoFilter to make sure it works even on protected sheets.

To do this, check the Use Autofilter option while protecting the sheet.

While this works when you already have filters in place, in case you try to add Autofilters using a VBA code, it won’t work.

Since the sheet is protected, it wouldn’t allow any macro to run and make changes to the Autofilter.

So you need to use a code to protect the worksheet and make sure auto filters are enabled in it.

This can be useful when you have created a dynamic filter (something I covered in the example –  ‘Filter Data based on a Cell Value’).

Below is the code that will protect the sheet, but at the same time, allow you to use Filters as well as VBA macros in it.

Private Sub Workbook_Open()
With Worksheets("Sheet1")
.EnableAutoFilter = True
.Protect Password:="password", Contents:=True, UserInterfaceOnly:=True
End With
End Sub

This code needs to be placed in ThisWorkbook code window.

Here are the steps to put the code in ThisWorkbook code window:

  1. Open the VB Editor (keyboard shortcut – ALT + F11).
  2. In the Project Explorer pane, double-click on the ThisWorkbook object.
  3. In the code window that opens, copy and paste the above code.

As soon as you open the workbook and enable macros, it will run the macro automatically and protect Sheet1.

However, before doing that, it will specify ‘EnableAutoFilter = True’, which means that the filters would work in the protected sheet as well.

Also, it sets the ‘UserInterfaceOnly’ argument to ‘True’. This means that while the worksheet is protected, the VBA macros code would continue to work.

You May Also Like the Following VBA Tutorials:

Использование математических операций в Excel

Если необходимо выполнить математические действия с ячейками или конкретными числами, в Excel тоже создается формула, поскольку все записи, начинающиеся с «=» в ячейке, считаются функциями. Все знаки для математических операций являются стандартными, то есть  «*»– умножить,  «» – разделить и так далее. Следует отметить, что для возведения в степень используется знак «^». Вкратце рассмотрим объявление подобных функций.

Выделите любую пустую ячейку и напишите в ней знак «=», объявив тем самым функцию. В качестве значения можете взять любое число, написать номер ячейки (используя буквенные и цифровые значения слева и сверху) либо выделить ее левой кнопкой мыши. На следующем скриншоте вы видите простой пример =B2*C2, то есть результатом функции будет перемножение указанных ячеек друг на друга.

После заполнения данных нажмите Enter и ознакомьтесь с результатом. Если синтаксис функции соблюден, в выбранной ячейке появится число, а не уведомление об ошибке.

Попробуйте самостоятельно использовать разные математические операции, добавляя скобки, чередуя цифры и ячейки, чтобы быстрее разобраться со всеми возможностями математических операций и в будущем применять их, когда это понадобится.

Особенности target VBA Excel

Вот некоторые ключевые особенности target VBA Excel:

  1. Целевой объект — это объект, который вызывает событие. Например, в случае события нажатия клавиши это может быть конкретная клавиша на клавиатуре, а в случае события щелчка мыши — элемент управления, на который был произведен щелчок.
  2. Использование target помогает определить, какой объект вызвал событие, что может быть полезно при написании макросов, которые должны реагировать только на определенные элементы или объекты.
  3. Свойство target доступно для использования в различных событиях, таких как Worksheet_Change, Button_Click, BeforeDoubleClick и т. д.
  4. С помощью target можно выполнять дополнительные действия в зависимости от идентификатора или типа целевого объекта. Например, вы можете проверить, является ли целевой объект кнопкой или ячейкой и выполнить определенные действия на основе этой информации.
  5. Как правило, target VBA Excel является временной переменной, которая хранит целевой объект во время выполнения события. Это означает, что вы не можете использовать target за пределами события.

В целом, target VBA Excel — это мощный инструмент, который помогает более точно контролировать и реагировать на события, происходящие в Excel. Он позволяет выполнить различные действия в зависимости от целевого объекта, что делает его полезным при написании сложных макросов и автоматизации задач.

On To The VBA

Now that you have had a brief overview on Named Ranges, lets dig into some VBA macros you can use to help automate the use of Named Ranges.

Delete Named Ranges with Error References

This VBA code will delete only Named Ranges with errors in them. These errors can be caused by worksheets being deleted or rows/columns being deleted.

Anything Missing From This Guide?

Let me know if you have any ideas for other useful VBA macros concerning Named Ranges. Or better yet, share with me your own macros and I can add them to the article for everyone else to see! I look forward to reading your comments below.

Hidden Hacks For VBA Macro Coding

After 10+ years of creating macros and developing add-ins, I’ve compiled all the hacks I wish I had known years ago!

Learn These Hacks Now For Free!

Chris Newman

Chris is a finance professional and Excel MVP recognized by Microsoft since 2016. With his expertise, he founded TheSpreadsheetGuru blog to help fellow Excel users, where he shares his vast creative solutions & expertise. In addition, he has developed over 7 widely-used Excel Add-ins that have been embraced by individuals and companies worldwide.

Как указать цель для подсчета

Функция Target Count в VBA Excel позволяет подсчитать количество ячеек, которые соответствуют определенному условию. Чтобы указать цель для подсчета, необходимо выполнить следующие шаги:

  1. Выберите ячейку или диапазон ячеек, в котором хотите произвести подсчет.
  2. Откройте редактор VBA, нажав комбинацию клавиш Alt + F11.
  3. В меню редактора VBA выберите вкладку «Вставка» и нажмите кнопку «Модуль».
  4. В открывшемся окне модуля введите следующий код:

Sub TargetCount()

    Dim rng As Range

    Dim count As Integer

    Set rng = Selection

    count = WorksheetFunction.CountIf(rng, «условие»)

    MsgBox «Количество ячеек, соответствующих условию: » & count

End Sub

Замените «условие» в коде на свое, конкретное условие, по которому вы хотите произвести подсчет. Например, если вы хотите подсчитать количество ячеек, содержащих текст «apple», замените «условие» на «apple».

После ввода кода вы можете сохранить модуль и вернуться к таблице Excel. Чтобы выполнить подсчет, выделите нужный диапазон ячеек и запустите макрос, выбрав его из списка доступных макросов.

После выполнения макроса вы увидите сообщение о количестве ячеек, соответствующих заданному условию.

Таким образом, вы успешно указали цель для подсчета, используя функцию Target Count в VBA Excel.

Основные принципы использования Target

В языке программирования VBA для Excel, объект Target играет важную роль при обработке событий, таких как изменение содержимого ячейки или выделение диапазона ячеек.

Target представляет собой объект, который содержит информацию о ячейке или диапазоне ячеек, на которые произошло событие.

Основное назначение объекта Target состоит в том, чтобы определить, какие ячейки были изменены, чтобы в соответствии с этой информацией можно было выполнить какое-то действие.

При обработке события изменения содержимого ячейки, объект Target представляет собой ячейку, в которую было внесено изменение.

Когда происходит событие выделения диапазона ячеек, объект Target представляет собой выделенный диапазон ячеек.

Одно из основных применений объекта Target заключается в том, чтобы изменять свойства ячеек или диапазона ячеек на основе содержимого измененной ячейки или выделенного диапазона. Например, можно применить форматирование, выделить жирным текст или изменить цвет фона.

Кроме того, объект Target может использоваться для вызова других процедур или выполнения других действий в зависимости от содержимого измененной ячейки или выделенного диапазона.

Применение объекта Target позволяет создавать более гибкие и динамичные макросы, которые автоматизируют работу с изменяемыми данными в ячейках.

Использование объекта Target требует некоторого опыта и понимания событий и свойств ячеек в Excel, но оно может быть очень полезным инструментом для автоматизации и обработки данных.

Split Example – Names

A really great example of Split is when dealing with names.

Imagine we have the name “John Henry Smith” and we want to extract each name.

We can use Left and Instr to get the first name:

' https://excelmacromastery.com/
Sub Instr_Firstname()
    
    Dim s As String
    s = "John Henry Smith"
    
    ' Get the position of the first space
    Dim position As Long
    position = InStr(s, " ") - 1

    ' Prints John
    Debug.Print Left(s, position)

End Sub

To get the last name is a bit trickier:

' https://excelmacromastery.com/
Sub Instr_Lastname()
    
    Dim s As String
    s = "John Henry Smith"
    
    ' Get the position of the last space
    Dim position As Long, length As Long
    position = InStrRev(s, " ") - 1
    length = Len(s)
    
    ' Prints Smith
    Debug.Print Right(s, length - position)

End Sub

Getting names that are not in the first or last position gets very messy indeed. However,  using Split we can simplify the whole process:

' https://excelmacromastery.com/
Sub SplitName()

    Dim s As String: s = "John Henry Smith"
    
    Dim arr() As String
    
    arr = Split(s, " ")
    Debug.Print arr(0) ' John
    Debug.Print arr(1) ' Henry
    Debug.Print arr(2) ' Smith

End Sub

We actually don’t need to use an array as we can see in the next example. It is not efficient to call the Split function 3 times instead of 1 but it does look nice in this example:

' https://excelmacromastery.com/
Sub SplitName()

    Dim s As String: s = "John Henry Smith"
    
    Debug.Print Split(s, " ")(0) ' John
    Debug.Print Split(s, " ")(1) ' Henry
    Debug.Print Split(s, " ")(2) ' Smith

End Sub

Примеры использования функции Target Count

Функция Target Count может быть использована для различных задач в VBA Excel. Ниже приведены несколько примеров, как можно использовать эту функцию.

  1. Подсчет количества ячеек с определенным значением: Вам необходимо посчитать, сколько ячеек в диапазоне содержат определенное значение. Вы можете использовать Target Count для подсчета таких ячеек и сохранения результата в переменной. Например:

  2. Проверка диапазона на наличие пустых ячеек: Вы хотите проверить, есть ли в диапазоне пустые ячейки. Вы можете использовать Target Count для определения количества пустых ячеек в диапазоне. Например:

  3. Подсчет количества уникальных значений в диапазоне: Если вам нужно узнать, сколько уникальных значений содержит диапазон, вы можете использовать Target Count в сочетании с функцией AdvancedFilter. Например:

Example #2: Allow User to Execute another Procedure

In the VBA Editor, select Insert -> New Module

Write this code in the Module window (don’t paste!):

Sub UserReportQuery()
Dim UserInput As Long
Dim Answer As Integer
UserInput = vbYesNo
Answer = MsgBox(«Process the XYZ Report?», UserInput)
If Answer = vbYes Then ProcessReport
End Sub

Sub ProcessReport()
MsgBox («Thanks for processing the XYZ Report.»)
End Sub

Save and navigate back to the Developer tab of Excel and select the “Button” option. Click on a cell and assign the UserReportQuery macro to the button.

Now click the button. This message should display:

Click “yes” or hit Enter.

Once again, tada!

Please note that the secondary subroutine, ProcessReport, could be anything. I’ll demonstrate more possibilities in example #3. But first…

How is it doing that?

This example builds on the previous example and has quite a few new elements. Let’s go over the new stuff:

  • Dim UserInput As Long: Dim is short for “dimension” and allows you to declare variable names. In this case, UserInput is the variable name and Long is the data type. In plain English, this line means “Here’s a variable called “UserInput”, and it’s a Long variable type.”
  • Dim Answer As Integer: declares another variable called “Answer,” with a data type of Integer. Learn more about data types here.
  • UserInput = vbYesNo: assigns a value to the variable. In this case, vbYesNo, which displays Yes and No buttons. There are many button types, learn more here.
  • Answer = MsgBox(“Process the XYZ Report?”, UserInput): assigns the value of the variable Answer to be a MsgBox function and the UserInput variable. Yes, a variable within a variable.
  • If Answer = vbYes Then ProcessReport: this is an “If statement,” a conditional statement, which allows us to say if x is true, then do y. In this case, if the user has selected “Yes,” then execute the ProcessReport subroutine.

When could I use this?

This could be used in many, many ways. The value and versatility of this functionality is more so defined by what the secondary subroutine does.

For example, maybe you have a file that is used to generate 3 different weekly reports. These reports are formatted in dramatically different ways.

  • Problem: Each time one of these reports needs to be generated, a user opens the file and changes formatting and charts; so on and so forth. This file is being edited extensively at least 3 times per week, and it takes at least 30 minutes each time it’s edited.
  • Solution: create 1 button per report type, which automatically reformats the necessary components of the reports and generates the necessary charts.

Real World Examples

  • Create a dialog box for user to automatically populate certain information across multiple sheets
  • Use the InputBox function to get information from the user, which is then populated across multiple sheets

Excel VBA Run Time Error 1004 Along With The Fixes

The lists of error messages associated with this Excel error 1004 are:

  1. VB: run-time error ‘1004’: Application-defined or object-defined error
  2. Excel VBA Runtime error 1004 “Select method of Range class failed”
  3. runtime error 1004 method range of object _global failed visual basic
  4. Excel macro “Run-time error ‘1004″
  5. Runtime error 1004 method open of object workbooks failed
  6. Run time error ‘1004’: Method ‘Ranger’ of Object’ Worksheet’ Failed
  7. Save As VBA run time Error 1004: Application defined or object defined error

Let’s discuss each of them one by one…!

#1 – VBA Run Time Error 1004: That Name is already taken. Try a different One

This VBA Run Time Error 1004 in Excel mainly occurs at the time of renaming the sheet.

If a worksheet with the same name already exists but still you are assigning that name to some other worksheet. In that case, VBA will throw the run time error 1004 along with the message: “The Name is Already Taken. Try a different one.”

Solution: You can fix this error code by renaming your Excel sheet.

#2 – VBA Run Time Error 1004: Method “Range” of object’ _ Global’ failed

This VBA error code mainly occurs when someone tries to access the object range with wrong spelling or which doesn’t exist in the worksheet.

Suppose, you have named the cells range as “Headings,” but if you incorrectly mention the named range then obviously you will get the Run Time Error 1004: Method “Range” of object’ _ Global’ failed error.

Solution: So before running the code properly check the name of the range.

# 3 – VBA Run Time Error 1004: Select Method of Range class failed

This error code occurs when someone tries to choose the cells from a non-active sheet.

 Let’s understand with this an example:

Suppose you have selected cells from A1 to A5 from the Sheet1 worksheet. Whereas, your present active worksheet is Sheet2.

At that time it’s obvious to encounter Run Time Error 1004: Select Method of Range class failed.

Solution: To fix this, you need to activate the worksheet before selecting cells of it.

#4 – VBA Runtime Error 1004 method open of object workbooks failed

This specific run time Error 1004 arises when someone tries to open an Excel workbook having the same workbook name that is already open.

In that case, it’s quite common to encounter VBA Runtime Error 1004 method open of object workbooks failed.

Solution: Well to fix this, first of all close the already opened documents having a similar name.

#5 – VBA Runtime Error 1004 Method Sorry We Couldn’t Find:

The main reason behind the occurrence of this VBA error in Excel is due to renaming, shifting, or deletion of the mentioned path.

The reason behind this can be the wrong assigned path or file name with extension.

When your assigned code fails to fetch a file within your mentioned folder path. Then you will definitely get the runtime Error 1004 method. Sorry, and We couldn’t find it.

Solution: make a proper check across the given path or file name.

#6 – VBA Runtime Error 1004 Activate method range class failed

Behind this error, the reason can be activating the cells range without activating the Excel worksheet.

This specific error is quite very similar to the one which we have already discussed above i.e Run Time Error 1004: Select Method of Range class failed.

Solution: To fix this, you need to activate your excel sheet first and then activate the sheet cells. However, it is not possible to activate the cell of a sheet without activating the worksheet.

How To Fix Runtime Error 1004?

Follow the steps given below to fix Excel run time error 1004 :

Method 1: Uninstall Microsoft Work

1. Go to the Task Manager and stop the entire running programs.

2. Then go to Start menu > and select Control Panel.

3. Next, in the Control Panel select Add or Remove Program.

4. Here, you will get the list of programs that are currently installed on your PC, and then from the list select Microsoft Work.

5. And click on uninstall to remove it from the PC.

It is also important to scan your system for viruses or malware, as this corrupts the files and important documents. You can make use of the best antivirus program to remove malware and also get rid of the runtime error 1004.

Method 2: Create New Excel Template

Another very simple method to fix Excel runtime error 1004 is by putting a new Excel worksheet file within a template. Instead of copying or duplicating the existing worksheet.

Here is the complete step on how to perform this task.

1.Start your Excel application.

2. Make a fresh new Excel workbook, after then delete the entire sheets present on it leaving only a single one.

3. Now format the workbook as per your need or like the way you want to design in your default template.

4. Excel 2003 user: Tap to the File>Save As option

OR Excel 2007 or latest versions: Tap to the Microsoft Office button after then hit the Save As option.

5. Now in the field of File name, assign name for your template.

6. On the side of Save as type there is a small arrow key, make a tap on it. From the opened drop menu

Excel 2003 users have to choose the Excel Template (.xlt)

And Excel 2007 or later version have to choose the Excel Template (.xltx)

7. Tap to the Save.

8. After the successful creation of the template, now you can programmatically insert it by making use of the following code:Add Type:=path\filename

Remarks: 

From the above code, you have to replace the path\filename with the complete path including the file name. For assigning the exact location of the sheet template you have just created.

Method 3: Delete The “GWXL97.XLA” File

Follow another manual method to fix Excel Runtime Error 1004:

1. Right-click on the start menu.

2. Then select the Explore option.

3. Then open the following directory – C:\Program Files\MSOffice\Office\XLSTART

4. Here you need to delete “GWXL97.XLA” file

5. And open the Excel after closing the explorer

You would find that the program is running fine without a runtime error. But if you are still facing the error then make use of the automatic MS Excel Repair Tool, to fix the error easily.

Понравилась статья? Поделиться с друзьями:
Technology trends
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: