Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 495
  • Last Modified:

VBA Macro Not Completing in Excel 2007

I have the following macro that is supposed to generate specific data in column K if a cell in Column A contains a specific value.  This does not complete successfully, and only seems to get to the point of creating the heading Custom Attribute 3, and saving the file as "Active-Transform.xls".  The rest does not seem to occur.  I did combine 2 separate macros, so perhaps the formatting or the way I did it is incorrect.  I'm a novice. Below is the code.  Thanks you in advance!

Private Sub Workbook_Open()
  If ActiveSheet.Cells(1, 11) = "Custom Attribute 3" Then
        'nothing to do as already done
         ActiveWorkbook.Save
    Else
         'fill extra columns
         FillColumnKLM
         'now save and close
         Application.DisplayAlerts = False
         ActiveWorkbook.SaveAs "Active-transform.xls"
         Application.DisplayAlerts = True
  End If
  Application.Quit
End Sub
Sub FillColumnKLM()
Dim WS As Worksheet, I As Long, RwCnt As Long
Set WS = ActiveSheet
RwCnt = WS.Cells(Rows.Count, 1).End(xlUp).Row
WS.Cells(1, 11) = "Custom Attribute 3"
WS.Cells(1, 11).Font.Bold = True
For I = 2 To RwCnt
    On Error Resume Next
    If InStr(1, LCase(WS.Cells(I, 1)), "Fruit") Then
        WS.Cells(I, 11) = "Apple"
        Else
    End If
    If InStr(1, LCase(WS.Cells(I, 1)), "Vegetable") Then
        WS.Cells(I, 11) = "Carrot"
        Else
    End If
Next
Columns.AutoFit

Open in new window

0
fireguy1125
Asked:
fireguy1125
  • 5
  • 3
  • 2
2 Solutions
 
Gregory MillerGeneral ManagerCommented:
Line 23 should be :
If InStr(1, LCase(WS.Cells(I, 1)), "fruit") Then

Open in new window



Line 27 should be:
If InStr(1, LCase(WS.Cells(I, 1)), "vegetable") Then

Open in new window


You are testing for a Lowercase string but your comparison had Initial Cap.
0
 
fireguy1125Author Commented:
How can I change this so it is exact (i'm not using fruit/vegetable in my actual code, but cities and States, some that are hyphenated, etc).  So in General the first letter is capital, and the rest are lowercase, but in some instances there's a hyphen, etc.  How can I make it so if I enter my If InStr it is exactly like what the source contains?
0
 
pony10usCommented:
Your code was also missing the End Sub at the end of the second subroutine but that may just be a typo.
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
fireguy1125Author Commented:
Thanks, pony10us, actually that is a typo.
0
 
fireguy1125Author Commented:
Also, it still needs to be kept as an "if contains", not "if is", as that cell contains other data I don't want included as part of the source info.
0
 
Gregory MillerGeneral ManagerCommented:
Wow, that is not going to have an answer. There is no way to predict what will be there.

Hmmm... I guess you could create an array of all of the unique values in the column and then youwould have the exact data, but I do not know of a simple way to do what you want without a lot of trial and error.
0
 
pony10usCommented:
No problem. I figured if you had it working at all then it must be a typo.  :)

If you write Option Compare Text at the top of your module, all the VBA comparisons with in that module will use Text comparison instead of Binary comparison. Thus, “yes” will be equal to “YES”.
0
 
fireguy1125Author Commented:
I don't have a module, can I do it at the VBAProject level?
0
 
Gregory MillerGeneral ManagerCommented:
You just put the statement above all of your Subs
0
 
fireguy1125Author Commented:
Perfect thanks so much!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 5
  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now