Hämta data via Inputbox


I detta tips visas hur vi kan hämta in flera värden från användarna mha av en Inputbox, vilken visas flera gånger.

Tekniken kan vara ett alternativ till att skapa ett eget inmatningsformulär i synnerhet när det rör sig om ett fåtal värden.

Om ett felmeddelande erhålls vid kopiering till VBA-modul så läs mer här»
 

 

(© 2002 - 2004 All rights Colo - Used by permission)

Option Explicit

 

Sub Input_From_Users()

   '© 2004 Alla rättigheter XL-Dennis

   Dim wbBook As Workbook

   Dim wsSheet As Worksheet

   Dim rnData As Range

   Dim vaArray As Variant, vaData As Variant

   Dim i As Long

 

   Const stPrompt As String = "Vänligen ange värden för beräkning:"

   Const stTitle As String = "Indata för beräkning av volym"

 

   Set wbBook = ThisWorkbook

   Set wsSheet = wbBook.Worksheets(1)

 

   With wsSheet

      'Cellområdet så ska tilldelas värdena.

      Set rnData = .Range("A2:A6")

   End With

 

   'Standardvärden.

   vaArray = VBA.Array(1, 2, 3, 4, 5)

 

   'Indata-formuläret visas 5 gånger i rad.

   vaData = Application.InputBox(Prompt:=stPrompt, _

                                   Title:=stTitle, _

                                   Default:=vaArray, _

                                  Type:=64)

 

   'Ifall användaren avbryter proceduren.

   For i = 1 To 5

      If vaData(i) = Empty Then Exit Sub

   Next

 

   'Skriver data till cellområdet.

   With Application

      .ScreenUpdating = False

      rnData.Value = .Transpose(vaData)

      .ScreenUpdating = True

   End With

 

End Sub