Sub testing()
'start searching for address
Set wb = ThisWorkbook
Set ws1 = wb.Sheets("Sheet1")
Set ws2 = wb.Sheets("Sheet2")
IncNum = Sheets("Sheet2").UsedRange.Columns.Count
ExcNum = Sheets("Sheet1").UsedRange.Columns.Count
InrNum = Sheets("Sheet2").UsedRange.Rows.Count
Exrnum = Sheets("Sheet1").UsedRange.Rows.Count
Set sheet1Table = Sheets("Sheet1").UsedRange
Set sheet2Table = Sheets("Sheet2").UsedRange
'skip header
For InrCounter = 2 To InrNum
For ExrCounter = 2 To Exrnum
If sheet1Table.Cells(InrCounter, 1) = sheet2Table.Cells(ExrCounter, 1) And sheet1Table.Cells(InrCounter, 2) = sheet2Table.Cells(ExrCounter, 2) And sheet1Table.Cells(InrCounter, 3) = sheet2Table.Cells(ExrCounter, 3) Then
If IncNum = ExcNum Then
Exit For
Else
Dim LastCofRowCounter, lastCofthisR As Integer
lastCofthisR = sheet1Table.Cells(ExrCounter, Columns.Count).End(xlToLeft).Column
For LastCofRowCounter = lastCofthisR + 1 To IncNum
Sheets("Sheet1").Cells(ExrCounter, LastCofRowCounter) = Sheets("Sheet2").Cells(InrCounter, LastCofRowCounter)
Next LastCofRowCounter
End If
ElseIf ExrCounter = Exrnum Then
'fid the last row of mastersheet
lrowEx = Sheets("Sheet1").Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
For counterCofLastR = 1 To IncNum
Sheets("Sheet1").Cells(lrowEx + 1, counterCofLastR) = Sheets("Sheet2").UsedRange.Columns(1).Cells(InrCounter, counterCofLastR)
Next counterCofLastR
End If
Next ExrCounter
Next InrCounter
End Sub
the table looks like
h1 h2 h3 h4
x x x x
the line ExcNum = Sheets("Sheet1").UsedRange.Columns.Count is giving me 9 instead of 4 and I have no idea why in this case...i tried on another worksheet with the same table and it worked fine.
I tried to call
Sub ResetUsedRng()
Application.ActiveSheet.UsedRange
End Sub
before executing all the code but this did not work. I also read the related posts you guys linked which includes this
Private Sub Workbook_BeforeSave _
(ByVal SaveAsUI As Boolean, Cancel As Boolean)
For Each Sh In ThisWorkbook.Worksheets
x = Sh.UsedRange.Rows.Count
Next Sh
End Sub
I called Call Workbook_BeforeSave(True, False), which did not work either. Ideas?