I am running into a problem where the VBA works on a new sheet but not the original sheet. I get a Runtime Error 9. Any advice on what might be going wrong?
The debugger notes a problem here: Runtime Error's specific location according to Debug
When I copy this code and paste it into a new sheet it works fine. I have checked all the worksheet names etc. and everything seems to check out. The most confusing part is that when I create a new workbook this error doesn't exist.
Here is the entire code:
Sub RunMyCode()
Dim iRtn As Integer
iRtn = 5
iRtn = RunStackadapt(iRtn)
iRtn = RunGoogleAds(iRtn)
iRtn = RunFacebook(iRtn)
iRtn = RunBing(iRtn)
iRtn = RunLinkedIn(iRtn)
End Sub
Function RunStackadapt(startLine As Integer) As Integer
Set OrgSheet = Worksheets("Stackadapt")
Set DesSheet = Worksheets("Rawdata")
Dim sResult As String
Dim jDes As Integer
jDes = startLine
For i = 2 To OrgSheet.UsedRange.Rows.Count
jDes = jDes + 1
DesSheet.Cells(jDes, 1) = OrgSheet.Cells(i, 1)
DesSheet.Cells(jDes, 2) = OrgSheet.Cells(i, 3)
DesSheet.Cells(jDes, 3) = fnDateFromWeek(OrgSheet.Cells(i, 2))
DesSheet.Cells(jDes, 4) = OrgSheet.Cells(i, 4)
DesSheet.Cells(jDes, 5) = OrgSheet.Cells(i, 5)
DesSheet.Cells(jDes, 6) = OrgSheet.Cells(i, 6)
DesSheet.Cells(jDes, 7) = OrgSheet.Cells(i, 7)
DesSheet.Cells(jDes, 8) = OrgSheet.Cells(i, 8)
DesSheet.Cells(jDes, 9) = OrgSheet.Cells(i, 9)
DesSheet.Cells(jDes, 10) = OrgSheet.Cells(i, 10)
DesSheet.Cells(jDes, 11) = OrgSheet.Cells(i, 11)
If ((OrgSheet.Cells(i, 12) = " ") Or (OrgSheet.Cells(i, 11) = "0") Or (OrgSheet.Cells(i, 11) = 0)) Then
DesSheet.Cells(jDes, 12) = "N/A"
Else
DesSheet.Cells(jDes, 12) = OrgSheet.Cells(i, 12) / 100
End If
If ((OrgSheet.Cells(i, 11) = " ") Or (OrgSheet.Cells(i, 11) = "0") Or (OrgSheet.Cells(i, 11) = 0)) Then
DesSheet.Cells(jDes, 13) = "N/A"
Else
DesSheet.Cells(jDes, 13) = OrgSheet.Cells(i, 13) / OrgSheet.Cells(i, 11)
End If
DesSheet.Cells(jDes, 14) = OrgSheet.Cells(i, 13)
DesSheet.Cells(jDes, 15) = OrgSheet.Cells(i, 14)
DesSheet.Cells(jDes, 16) = OrgSheet.Cells(i, 15)
DesSheet.Cells(jDes, 17) = "N/A"
DesSheet.Cells(jDes, 18) = "N/A"
DesSheet.Cells(jDes, 19) = "N/A"
Next
RunStackadapt = jDes
End Function
Function RunGoogleAds(startLine As Integer) As Integer
Set OrgSheet = Worksheets("Google Ads")
Set DesSheet = Worksheets("Rawdata")
Dim sResult As String
Dim jDes As Integer
jDes = startLine
For i = 2 To OrgSheet.UsedRange.Rows.Count
jDes = jDes + 1
DesSheet.Cells(jDes, 1) = OrgSheet.Cells(i, 1)
DesSheet.Cells(jDes, 2) = OrgSheet.Cells(i, 2)
DesSheet.Cells(jDes, 3) = fnDateFromWeek(OrgSheet.Cells(i, 3))
DesSheet.Cells(jDes, 4) = OrgSheet.Cells(i, 4)
DesSheet.Cells(jDes, 5) = OrgSheet.Cells(i, 5)
DesSheet.Cells(jDes, 6) = OrgSheet.Cells(i, 6)
DesSheet.Cells(jDes, 7) = OrgSheet.Cells(i, 7)
DesSheet.Cells(jDes, 8) = OrgSheet.Cells(i, 8)
DesSheet.Cells(jDes, 9) = OrgSheet.Cells(i, 9)
DesSheet.Cells(jDes, 10) = OrgSheet.Cells(i, 10)
DesSheet.Cells(jDes, 11) = OrgSheet.Cells(i, 11)
DesSheet.Cells(jDes, 12) = OrgSheet.Cells(i, 12)
DesSheet.Cells(jDes, 13) = OrgSheet.Cells(i, 13)
DesSheet.Cells(jDes, 14) = OrgSheet.Cells(i, 14)
DesSheet.Cells(jDes, 15) = OrgSheet.Cells(i, 15)
DesSheet.Cells(jDes, 16) = "N/A"
DesSheet.Cells(jDes, 17) = "N/A"
DesSheet.Cells(jDes, 18) = "N/A"
DesSheet.Cells(jDes, 19) = OrgSheet.Cells(i, 16)
Next
RunGoogleAds = jDes
End Function
Function RunFacebook(startLine As Integer) As Integer
Set OrgSheet = Worksheets("Facebook")
Set DesSheet = Worksheets("Rawdata")
Dim sResult As String
Dim jDes As Integer
jDes = startLine
For i = 2 To OrgSheet.UsedRange.Rows.Count
jDes = jDes + 1
DesSheet.Cells(jDes, 1) = OrgSheet.Cells(i, 1)
DesSheet.Cells(jDes, 2) = OrgSheet.Cells(i, 2)
DesSheet.Cells(jDes, 3) = fnDateFromWeek(OrgSheet.Cells(i, 3))
DesSheet.Cells(jDes, 4) = OrgSheet.Cells(i, 4)
DesSheet.Cells(jDes, 5) = OrgSheet.Cells(i, 5)
DesSheet.Cells(jDes, 6) = OrgSheet.Cells(i, 6)
DesSheet.Cells(jDes, 7) = OrgSheet.Cells(i, 7)
DesSheet.Cells(jDes, 8) = OrgSheet.Cells(i, 8)
DesSheet.Cells(jDes, 9) = OrgSheet.Cells(i, 9)
DesSheet.Cells(jDes, 10) = OrgSheet.Cells(i, 10)
DesSheet.Cells(jDes, 11) = OrgSheet.Cells(i, 11)
DesSheet.Cells(jDes, 12) = OrgSheet.Cells(i, 12)
If ((OrgSheet.Cells(i, 11) = " ") Or (OrgSheet.Cells(i, 11) = "0") Or (OrgSheet.Cells(i, 11) = 0)) Then
DesSheet.Cells(jDes, 13) = "N/A"
Else
DesSheet.Cells(jDes, 13) = OrgSheet.Cells(i, 13) / OrgSheet.Cells(i, 11)
End If
DesSheet.Cells(jDes, 14) = OrgSheet.Cells(i, 13)
DesSheet.Cells(jDes, 15) = OrgSheet.Cells(i, 14)
DesSheet.Cells(jDes, 16) = OrgSheet.Cells(i, 15)
DesSheet.Cells(jDes, 17) = OrgSheet.Cells(i, 16)
DesSheet.Cells(jDes, 18) = OrgSheet.Cells(i, 17)
DesSheet.Cells(jDes, 19) = "N/A"
Next
RunFacebook = jDes
End Function
Function RunBing(startLine As Integer) As Integer
Set OrgSheet = Worksheets("Bing")
Set DesSheet = Worksheets("Rawdata")
Dim sResult As String
Dim jDes As Integer
jDes = startLine
For i = 2 To OrgSheet.UsedRange.Rows.Count
jDes = jDes + 1
DesSheet.Cells(jDes, 1) = OrgSheet.Cells(i, 1)
DesSheet.Cells(jDes, 2) = " "
DesSheet.Cells(jDes, 3) = fnDateFromWeek(OrgSheet.Cells(i, 2))
DesSheet.Cells(jDes, 4) = OrgSheet.Cells(i, 3)
DesSheet.Cells(jDes, 5) = OrgSheet.Cells(i, 4)
DesSheet.Cells(jDes, 6) = OrgSheet.Cells(i, 5)
DesSheet.Cells(jDes, 7) = OrgSheet.Cells(i, 6)
DesSheet.Cells(jDes, 8) = OrgSheet.Cells(i, 7)
DesSheet.Cells(jDes, 9) = OrgSheet.Cells(i, 8)
DesSheet.Cells(jDes, 10) = OrgSheet.Cells(i, 9)
DesSheet.Cells(jDes, 11) = "N/A"
DesSheet.Cells(jDes, 12) = "N/A"
DesSheet.Cells(jDes, 13) = "N/A"
DesSheet.Cells(jDes, 14) = OrgSheet.Cells(i, 10)
DesSheet.Cells(jDes, 15) = "N/A"
DesSheet.Cells(jDes, 16) = "N/A"
DesSheet.Cells(jDes, 17) = "N/A"
DesSheet.Cells(jDes, 18) = "N/A"
If ((OrgSheet.Cells(i, 11) = " ") Or (OrgSheet.Cells(i, 11) = "0") Or (OrgSheet.Cells(i, 11) = 0)) Then
DesSheet.Cells(jDes, 19) = "N/A"
Else
DesSheet.Cells(jDes, 19) = OrgSheet.Cells(i, 11) / 100
End If
Next
RunBing = jDes
End Function
Function RunLinkedIn(startLine As Integer) As Integer
Set OrgSheet = Worksheets("LinkedIn")
Set DesSheet = Worksheets("Rawdata")
Dim sResult As String
Dim jDes As Integer
jDes = startLine
For i = 2 To OrgSheet.UsedRange.Rows.Count
jDes = jDes + 1
DesSheet.Cells(jDes, 1) = OrgSheet.Cells(i, 1)
DesSheet.Cells(jDes, 2) = OrgSheet.Cells(i, 2)
DesSheet.Cells(jDes, 3) = fnDateFromWeek(OrgSheet.Cells(i, 3))
DesSheet.Cells(jDes, 4) = OrgSheet.Cells(i, 4)
DesSheet.Cells(jDes, 5) = OrgSheet.Cells(i, 5)
DesSheet.Cells(jDes, 6) = OrgSheet.Cells(i, 6)
DesSheet.Cells(jDes, 7) = OrgSheet.Cells(i, 7)
DesSheet.Cells(jDes, 8) = OrgSheet.Cells(i, 9)
DesSheet.Cells(jDes, 9) = OrgSheet.Cells(i, 10)
DesSheet.Cells(jDes, 10) = OrgSheet.Cells(i, 11)
DesSheet.Cells(jDes, 11) = OrgSheet.Cells(i, 8)
If ((OrgSheet.Cells(i, 8) = " ") Or (OrgSheet.Cells(i, 8) = "0") Or (OrgSheet.Cells(i, 8) = 0 Or (OrgSheet.Cells(i, 4) = 0))) Then
DesSheet.Cells(jDes, 12) = "N/A"
Else
DesSheet.Cells(jDes, 12) = OrgSheet.Cells(i, 8) / OrgSheet.Cells(i, 4)
End If
If ((OrgSheet.Cells(i, 8) = " ") Or (OrgSheet.Cells(i, 8) = "0") Or (OrgSheet.Cells(i, 8) = 0 Or (OrgSheet.Cells(i, 12) = 0))) Then
DesSheet.Cells(jDes, 13) = "N/A"
Else
DesSheet.Cells(jDes, 13) = OrgSheet.Cells(i, 12) / OrgSheet.Cells(i, 8)
End If
DesSheet.Cells(jDes, 14) = OrgSheet.Cells(i, 12)
DesSheet.Cells(jDes, 15) = OrgSheet.Cells(i, 14)
DesSheet.Cells(jDes, 16) = OrgSheet.Cells(i, 13)
DesSheet.Cells(jDes, 17) = "N/A"
DesSheet.Cells(jDes, 18) = OrgSheet.Cells(i, 15)
DesSheet.Cells(jDes, 19) = "N/A"
Next
RunLinkedIn = jDes
End Function
Function fnDateFromWeek(ByVal sStr) As String
Dim arr
Dim iYear As Integer
Dim iWeek As Integer
Dim iWeekDday As Integer
iWeekDday = 2
arr = Split(sStr, "|")
iYear = arr(0)
iWeek = arr(1) + 1
fnDateFromWeek = "'" + Format(DateSerial(iYear, 1, ((iWeek - 1) * 7) + iWeekDday - Weekday(DateSerial(iYear, 1, 1)) + 1), "yyyy-mm-dd")
End Function