![]() |
|
|
|
#1
|
||||
|
||||
|
If have found some code for retrieving zip codes from the USPS website but, using that website, you can't look up zip codes by county - a town/city name is required. See: https://tools.usps.com/go/ZipLookupA...1&refresh=true
Only a small number of zip codes can be retrieved for your data. Bearing that in mind, you might try: Code:
Option Explicit
Dim ieObj As Object
Sub CleanUp()
Application.ScreenUpdating = False
Dim i As Long, j As Long, k As Long
With ActiveSheet
With .UsedRange
.Cells.Replace What:=Chr(160), Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.UnMerge
.VerticalAlignment = xlCenter
.WrapText = False
.HorizontalAlignment = xlLeft
.Font.ColorIndex = xlAutomatic
.Font.Underline = False
End With
While .Shapes.Count > 0
.Shapes(1).Delete
Wend
.Columns(11).Delete
.Columns(9).Delete
.Columns(8).Delete
.Columns(6).Delete
.Columns(5).Delete
.Columns(4).Delete
.Columns(2).Delete
For i = 1 To .UsedRange.Rows.Count - 1
If .Cells(i, 5).Value = "MORTGAGE" Then
.Cells(i, 5).Value = -(.Cells(i + 1, 5).Value)
End If
If Trim(.Cells(i, 2).Value) Like "####-#####" Then
.Cells(i, 2).Value = Trim(.Cells(i, 2).Value)
For j = i To .UsedRange.Rows.Count
If Trim(.Cells(j, 1).Value) <> "" Then Exit For
Next
.Cells(i, 8).Value = .Cells(j, 1).Value
.Cells(i, 9).Value = Replace(Replace(.Cells(i, 7).Value, "City of ", ""), "Town of ", "")
For k = i + 1 To j
If .Cells(k, 3).Value <> "" Then
.Cells(i, 3).Value = .Cells(i, 3).Value & " / " & .Cells(k, 3).Value
End If
Next
End If
Next
For i = .UsedRange.Rows.Count To 2 Step -1
If .Cells(i, 2).Value = "" Then .Rows(i).EntireRow.Delete
Next
.Columns(7).Delete
.Columns(1).Delete
Call ZipUpdate
.UsedRange.Rows.AutoFit
.UsedRange.Columns.AutoFit
End With
Application.ScreenUpdating = True
End Sub
Sub ZipUpdate()
Application.ScreenUpdating = False
Dim i As Long
Set ieObj = CreateObject("InternetExplorer.Application")
With ActiveSheet
For i = 2 To .UsedRange.Rows.Count
.Cells(i, 8).Value = ZipCode(.Cells(i, 6).Value, .Cells(i, 7).Value, "NY")
Next
End With
ieObj.Quit: Set ieObj = Nothing
Application.ScreenUpdating = True
End Sub
Function ZipCode(Addr As String, City As String, State As String) As String
Dim URL As String, AD As String, Ct As String, St As String, Data As String
Dim Zip As String, i As Long, ieDoc As Object
URL = "https://tools.usps.com/go/ZipLookupResultsAction!input.action?resultMode=0&companyName=&" & _
"address1=" & Addr & "&address2=&city=" & City & "&state=" & State & "&urbanCode=&postalCode=&zip="
With ieObj
.navigate URL
Do Until (.readyState = 4 And Not .Busy)
DoEvents
Loop
Set ieDoc = .document
Data = ieDoc.body.innerText
Data = Right(Data, Len(Data) - 2400)
If InStr(1, Data, "Here's the full address") = 0 Then
ZipCode = ""
Else
Data = Mid(Data, InStr(1, Data, "Here's the full address") + 94, 100)
ZipCode = Mid(Data, InStr(1, Data, "-") - 5, 10)
End If
End With
Set ieDoc = Nothing
End Function
Call ZipUpdate and run the CleanUp macro without it. You could then run the ZipUpdate macro after you've fixed up the locality details.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Word 2013 - Compress pictures | charleswpj | Drawing and Graphics | 1 | 11-08-2015 12:36 AM |
| Deleting grid lines but keeping the axis lines | CoffeeNut | Excel | 0 | 04-01-2013 01:50 PM |
| How can I compress slide shows under Apple? | Cliff | PowerPoint | 0 | 01-10-2012 12:04 PM |
| Compress Emails as Attachment | SJT | Outlook | 2 | 11-30-2011 01:36 PM |
Getting blank lines instead of supressed lines.
|
Welshie82 | Mail Merge | 2 | 11-14-2011 01:41 AM |