I have an application I just built last week that seemed to be working fine. It's purpose is simple. It allows the user to select multiple .rtf files from a network drive, and then it loops through them, opens them up one at a time, copies the entire contents into a "temp" sheet in the excel workbook, then copies certain data from the temp tab to the next two columns in the main "data" tab of the worksheet, deletes the temp sheet, and then repeats the process for each selected .rtf file. Finally , it does some formatting of the "data" tab. All in all, it works quite well. Or at least, it DID.
VB: Sub CopyRTFDocToTemp() Dim WordApp As Object Set WordApp = CreateObject("Word.Application") With WordApp
[Code] .....
As of last night, we started getting various errors.
"Run-time error '1004': Paste Method of Worksheet class failed" error messages occasionally. The frequency seems to have increased.
We were also getting an error message that reads "Microsoft Excel is waiting for another application to complete an OLE action" error messages.
Then when I stepped through the code, I was getting an error message that read [filename I'm trying to open] "is locked for editing by" [me]. "Do you want to Open a Read Only copy, Create a local copy and merge your changes later, or Receive notification when the original copy is available"
I suspected two issues 1. The macro is not successfully opening the source file before it tries to copy it, so there is nothing to paste into Excel 2. The word file was not closed the LAST time I ran the app, so the file is getting stuck open, and I have no way to manually close it.
Finally, I rebooted the PC, and added code (activedocument.close) to close the word app after copying the contents of the rtf file
VB:
Sub CopyRTFDocToTemp() Dim WordApp As Object Set WordApp = CreateObject("Word.Application") With WordApp
[Code] ....
I'm considering adding a wait loop to ensure that the app has actually opened a copy of the rtf file, so it has something to copy, but I'm unsure what variable to check with that loop.
My spreadsheet has a grouped graphic that I need to repeat in a variable number of rows. I wrote a macro that copies the grouped graphic from above and pastes and positions it in the newly inserted row.
It works great when I use F8 to step thru, but if I try to actually run the macro, I get an "Paste Method of worksheet class failed." error.
Sub InsertEmployees() Range("B18").Select Selection.EntireRow.Copy Selection.EntireRow.Insert Shift:=xlDown ActiveSheet.Shapes("Group 129").Copy Application.CutCopyMode = False ActiveSheet.Paste End Sub
I am working on a file which is a log of all the requests we send out to our vendors. We regularly need to re-send these requests to remind them they haven't responded yet, so I am working on a macro which takes the info from the log and re-populates the request form so everything doesn't have to be re-typed every time. I've added a MsgBox as a double-check to force people to confirm they want to re-send the request.
My problem is that if you hit "No" on the MsgBox, then try to run the code again, it gives me a Run-time Error 1004 saying "Paste method of Worksheet class failed". Can someone look at my code and see if you can tell me why it works the first time but not the second?
Sub RegenerateRequest() If ActiveCell.Column = 1 And ActiveCell.Row > 7 Then Application.Run "LogUnprotect" ActiveCell.EntireRow.Copy Sheets("Regenerate Request").Activate Application.Run "RegenFormUnprotect" Range("A40").Select ActiveSheet.Paste 'this is the line the debugger highlights.............
Very new to VBA and having trouble with a simple macro running in 2003 that copies and pasts to another worksheet. Code as follows:
Private Sub CopyResults_Click() 'Select the filtered data and copy it Range("A23").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Range("F19").Select ' Open the template and copy in the data Workbooks.Open Filename:="C:Athens Verification DataTemplatesVerification Template.xls" Workbooks("Verification Template.xls").Activate ActiveSheet.Range("A1").Select ActiveSheet.Paste ActiveSheet.Range("A1").Select Application.CutCopyMode = False End Sub
When I run CopyResults, the sheet is opened and the data copied correctly, but I get a runtime error 1004 past method of worksheet class failed, with the line 'ActiveSheet.Paste' highlighted. Don't get this when I run the same macro in 2000.
i just figured out that when you change sheets too often in VBA and get an "Activate Method Of Range Class Failed" or a "Select Method Of Range Class Failed" etc, simply retype the sheets command before it
for example :
Sheets("Work1").Select Range("A1:D50").Select
OR
Sheets(Work1").Range("A1:D50").Select
this code in VBA, if used too often or the mentioned sheet is not the currently selected sheet in a Sub, will cause errors, and to correct this, simply type
I have created a spreadsheet that is 38mb and needed to size it down. I recorded the following macro to do this. This essentialy jut copies the top line of the relevant columns on each page and then copies the formulas down, calculates, and then pastes just the values of these calculations, thereby reducing the sheet to a third of its size. The macro works if I run it from the macro option on the toolbar, but when I assign it to a command button I keep getting ' select method
Dim toDel(), i As Long Dim RNG As Range, Cell As Long Set RNG = Range("d2:d2500") For Cell = 1 To RNG.Cells.Count If Application.CountIf(RNG, RNG(Cell)) > 1 Then
Code is attempting to autofilter any rows where text does not contain "0200" as indicated below, and delete all those rows. When reaching the line of code below the macro bombs and I get a "AutoFilter method of Range class failed" error message. Why that line is not being recognized.
With rngData ' clear existing filter .AutoFilter ' filter on Owner col F .AutoFilter field:=6, Criteria1:=varOwner ' check for count > 1 since heading row should always be visible If .Columns(1).SpecialCells(xlCellTypeVisible).count > 1 Then .SpecialCells(xlCellTypeVisible).Copy rngOutput End If 'clear filter .AutoFilter End With
Set rngOutput = wksSell.Range("A1")
It fails on the line highlighted in red, and from searches on this forum and google I think I need to specify more exactly which sheet it is. something like wksdata.SpecialCells.... but this doesn't work.
When the public routine ChangeColours is called from a Command button called ButtonX on SheetX it works fine. But a command button called ButtonY on SheetY cannot run it. When ButtonY is clicked, the error is at the line :
Sheets("SheetX").Cells(4,5).Select
Where it says that "Select Method of Range class failed"
Private Sub ButtonX_Click() Call ChangeColours(0) End Sub
Private Sub ButtonY_Click() Call ChangeColours(0) End Sub...............
I have written some code to move data from one sheet to another. Since the from sheet has formulas, I use the PasteSpecial command. I have used code like this for years, and all the sudden, this starts breaking. And, here is the fun part, I run the code and it works sometimes. I never know when it will fail. It is so random. This is killing me. I have tried to create objRange object and assign them and it works sometime and fails others. Also, I tried adding the line Worksheets("Daily Dashboard"). Range ("C72").Select before the first PasteSpecial as to select the cell first before pasting. Then I get the "Select method of range class failed". Lastly, I tried copying the code from behind a worksheet into a new module. The code is triggered by a button on the first worksheet. Still fails.
I'm getting "1004 select method of range class failed" on the Range statement below. This code is preceded by a number of range selection and formula-setting statements, nothing unusual.
I have a macro that opens a specified woorkbook that changes every month. There are formulas which are pasted to range I1 of the new workbook to calculate the totals on this sheet. Everytime i run the code though, I get an error that says "Select method of range class failed" and Range("I1").Select is apparently the error.
I m trying to use some simple macro recording for a command button click. I keep getting the "Select method of range class failed" error from the following code. From reading the forum it seems to be a common mistake by newbies, couldnt work it out for myself though...my command button is located on a different sheet to where the select function must work...from the code you can see that there are around 20 sheets that need to be used from the one command button...
Why I'm getting the above error when I try to copy and sort data into a workbook?
I'm using this:
Code: Sub GetData1() Dim SaveDriveDir As String, MyPath As String Dim FName As Variant SaveDriveDir = CurDir MyPath = Application.DefaultFilePath 'or use "C:Data"
[Code] .......
To import the data and then these lines to copy the unique records to a range:
Macro has been working fine for ages suddenly have received this consistently?
It's not debugging to allow me to see the route of the problem.
i've googled and seen it's normally a use of select but can't see any issue in my code or understand why it would work for months and now stop.
note: also after i click Ok on the error the macro seems to continue running and data is pulled through. ...but this message comes up every time so it's questioning the reliability of the data it's pulling.
Check Personnel Number in Data Tab with Personnel Numbers in Insert Tab. If they match copy that row from Insert Tab and paste it into the next available row in the Moves Tab.
I'm attempting to write an OutLook 2007 macro that extracts excel spreadsheets from incoming email and saves them as a .csv file. Before saving the file I need to delete the header row. I am getting a "Error 1004 - Delete method of range class failed" error when running this code.
Here is the code: (the bolded line is where I'm getting the error)
Public Sub ConvertToCsv2() Dim xls As Excel.Application Dim oWB As Excel.Workbook Dim tmp As String Dim ws As Excel.Worksheet
As part of a larger Macro I have the following Code:
Range("X2").Select ActiveCell.FormulaR1C1 = "=IF(RC[-1]>0,""Yes"",""No"")" Range("X2").Select Selection.AutoFill Destination:=Range("X2", "X" & lastRow) Range("X2", "X" & lastRow).Select Selection.Copy
The code works fine when I have more than two rows of data that I am manipulating but gives me an Run Time Error - AutoFill Method of Range Class Failed at the following line:
Selection.AutoFill Destination:=Range("X2", "X" & lastRow)
When I have only one row of data I get the Run time error.
Any code that will allow me to process the data if I have one row of data as well.
I have two separate workbooks, the first is called Job test and is to be used as a template for quoting jobs, the second is called Fixtures and is a database of fixtures that are organized in table. I keep them separate as multiple jobs will use the Fixtures DB workbook and I want to be able to update it and add new fixtures in one area. In order to facilitate this I have a macro that opens the Fixtures DB workbook anytime that the Job test workbook is opened. In the Job test workbook I have multiple dropdowns that I hope to make dependent or cascading by means of filtering the Fixtures DB workbook. The issue I have run into is with the following code.
What this code hopes to achieve is that when I change the value in the LightType dropdown, the Fixtures DB workbook will automatically filter the data once to a different sheet(CLampType), then get only unique values for LampType in column O. I have set up a dynamic range for column O so as to populate my next combobox, LampType.
This should all be fairly simple and straightforward, however I am running into "Run-time error '1004': Clear method of Range class failed." when I try to execute the line to clear the worksheet, and also have an error when I try to filter the data via macro. The strange part is all of this can be done manually without a problem, and moreover I have tried recording the process and using the recorded version. Even stranger yet is that when I add an "on error resume next" before everything, the code works fine but keeps looping and acts finicky(I don't want to simply resort to this as a solution). I have also tried setting this macro up inside the Fixtures workbook instead and calling it from the combobox change, to no avail.