View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
JLGWhiz JLGWhiz is offline
external usenet poster
 
Posts: 3,986
Default Replacing "IF" or "Lookup" formulas with VBA function

Just in case, this version defines i a little better.

Sub cpy()
Dim i As Long
Set Sh1 = Worksheets(1)
Set sh2 = Worksheets(2)
i = 1
For Each c In sh2.Range("$A$1:$L$1")
If Not c Is Nothing Then
If c = Sh1.Cells(i, 1) Then
Sh1.Cells(i, 1).Offset(0, 1).Copy c.Offset(1, 0)
End If
End If
i = i + 1
Next
End Sub


"dhunter43" wrote:

I'm getting a "Type Mismatch" error. Perhaps you need more info.
The column headings in worksheet2 text headings i.e. 14Sheeting, 15Printing
Of course I'm presuming the "Type Mismatch" refers to i = 1 as defining the
data as an integer. Otherwise I've not seen this error before.
--
dhunter43
The Performance Advantage, LLC


"JLGWhiz" wrote:

Try this in the standard VBA module.

Sub cpy()
Set Sh1 = Worksheets(1)
Set sh2 = Worksheets(2)
i = 1
For Each c In sh2.Range("$A$1:$L$1")
If c = Sh1.Cells(i, 1) Then
Sh1.Cells(i, 1).Offset(0, 1).Copy c.Offset(1, 0)
End If
i = i + 1
Next
End Sub

"dhunter43" wrote:

In worksheet1 I have a range (a1:b12).
In worksheet2 I have 12 column headings (a1:l1) and I want to search
worksheet1 range a1:a12 for the corresponding column headings then populate
worksheet2(a2:l2) with the data from worksheet1 (b1:b12).
I was able to use the "IF" formula in worksheet2 until I expanded past the 7
nested functions rule. I've tried to use Lookup and Vlookup formulas but both
require sorting which is not an option.
I've also tried to use the IFELSE function and LOOKUP functions in VBA
without success.

I appreciate the assistance and enjoy the learnings that go into problem
solving.

Thanks,
dhunter43
The Performance Advantage, LLC