2016-05-12 8 views
-2

Ich habe das folgende Makro online gefunden. Ich würde gerne wissen, wie ein Eingabefeld hinzugefügt wird, mit dem ich dem Makro sagen kann, dass es eine andere Spalte als A überprüft und bei anderen Zellen als A1 beginnt.Eingabefeld zum URL-Checker-Makro in Excel 2010 hinzufügen

Sub Check_URLs() 

    Dim cell As Range 
    Dim IE As Object 

    Set IE = CreateObject("InternetExplorer.Application") 
    IE.Visible = True 

    For Each cell In Range("A1", Range("A" & Rows.Count).End(xlUp)) 

     If Left(cell.Value, 4) = "http" Then 

      ' Goto web page 
      IE.Navigate cell.Text 

      Application.StatusBar = cell.Text & " is loading. Please wait..." 

      ' Wait until web page is loaded 
      Do Until IE.ReadyState = 4 'READYSTATE_COMPLETE 
      Loop 

      Application.StatusBar = "" 

      ' Look for text on web page 
      If InStr(IE.Document.body.innerText, _ 
       "HTTP 404") > 0 Then 
       cell.Offset(, 1).Value = "zzz" 
       Else 
       cell.Offset(, 1).Value = "Y" 

      End If 
     End If 
    Next cell 

    IE.Quit 
    Set IE = Nothing 

End Sub 
+0

Hast du versucht, online zu schauen? Wie, google "Inputbox Excel VBA" und ich bin * sicher * du wirst herausfinden * wie * :) –

Antwort

0

Go here to learn about the InputBox. Dann Lesezeichen diese Ressource als es Link zum vollständigen Excel-Objektmodell enthält (und andere Office-Anwendungen, als auch), für die Zukunft :)

Application.InputBox Method (Excel)

, von dem Sie dann Ihre InputBox erstellen und weisen Sie das Ergebnis auf ein Range-Objekt:

Dim startRange as Range 

Set startRange = Application.InputBox(Prompt:="Select starting cell...", _ 
             Default:="$A$1", _ 
             Type:=8) 

Dann gehen here zu lernen, wie die „letzte Zeile“ zu finden in einer bestimmten Bereich/Spalte/etc.

Error in finding last used cell in VBA

Schließlich passen Sie Ihre For each cell... Schleife entsprechend.

Alternativ ein einfaches Eingabefeld verwenden (dies wird höchstwahrscheinlich benötigt zusätzliche Fehlerbehandlung zB was, wenn jemand eingibt Steve? Oder eine Nummer anstelle einem Brief, usw.)

Dim myColumnLetter as String 
myColumnLetter = Application.InputBox("Input a column letter.", Default:="A") 

' ### Here you may want to validate the input value, 
'  since it could cause errors if it's not a valid input 
' ### 

For Each cell In Range(myColumnLetter & "1", Range(myColumnLetter & Rows.Count).End(xlUp))