Generare un numero casuale tra un b

Ho la conoscenza del RANDBETWEEN() funzione all’interno delle celle di Excel. Questo restituisce solo un (1) valore. Vorrei assegnare questo pulsante per tornare un valore diverso ogni volta che il tasto viene colpito.

Posso creare il pulsante, ho il cell. Come posso collegare i due?

Lunga storia breve, ogni volta che viene cliccato un pulsante di una cella (permette di dire che la cella a1) si ottiene un valore diverso tra i valori di a per b.

 

3 Replies
  1. 0

    Se si sta ancora utilizzando il RANDBETWEEN funzione e si desidera solo per generare un nuovo valore di comando, basta premere F9 per forza di Excel per ricalcolare tutte le formule. RANDBETWEEN sarà quindi generare un nuovo numero casuale. (Se non cambia il valore, è solo perché ha generato lo stesso numero casuale per caso. Continuare a premere F9 per ottenere nuovi numeri casuali.)

    Di notare che la modifica di qualsiasi formula nel foglio di calcolo in causa anche il RANDBETWEEN funzione per generare un nuovo valore.

    Se si desidera un nuovo numero casuale per essere generato SOLO quando il comando è a, allora avete bisogno di creare una macro, che può essere facilmente definito attraverso un pulsante. Sto assumendo che non si ha familiarità con le macro, in modo che la seguente è una soluzione semplice.

    Il sito web riportato di seguito viene illustrato come creare un semplice pulsante che consente di eseguire una macro. (Nota che questo metodo funziona solo con il pulsante ActiveX, non il pulsante Form.)

    https://www.tutorialspoint.com/vba/vba_excel_macros.htm

    Ti basta sostituire il codice nel loro esempio (MsgBox “Ciao”) con il seguente codice:

    Range("A1") = WorksheetFunction.RandBetween(a,b)

    Sostituire a e b, con i numeri che si desidera ottenere un numero casuale tra. Si può fare questo un paio di modi:

    Se vuoi sempre che tra gli stessi due numeri (ad esempio, 1 e 10), è possibile codificare in macro:

    Range("A1") = WorksheetFunction.RandBetween(1,10)

    Se si desidera che tra due numeri registrati nello stesso foglio di calcolo (ad esempio nelle celle B1 e B2), è possibile fare riferimento alle celle:

    Range("A1") = WorksheetFunction.RandBetween(Range("B1"),Range("B2"))

    O si può chiedere per i numeri in popup:

    a = InputBox("Enter a")
    b = InputBox("Enter b")
    Range("A1") = WorksheetFunction.RandBetween(a, b)

    Si noti che il sito sbaglia un paio di passaggi importanti che è necessario eseguire prima il pulsante sarà in grado di utilizzare:

    1. Chiudere la finestra VBA (in realtà non è necessario, ma non c’è bisogno di lasciarlo aperto)

    2. Uscire Dalla Modalità Progettazione. Nella scheda sviluppo in Excel, il pulsante Modalità Progettazione deve ancora essere evidenziato. Fare clic su di esso per l’onu-evidenziarlo. Ora è possibile fare clic il pulsante.

    Si noti che se si desidera modificare il codice per il pulsante di nuovo, è necessario fare clic su Modalità di Progettazione di nuovo per evidenziare di nuovo, quindi è possibile fare doppio clic sul pulsante per visualizzare di nuovo il codice.

    • grazie per la risposta. ora, supponiamo di voler creare diverse cellule per generare in modo casuale tra i diversi valori (come 1-100, 1-20, 1-1000 etc.) sarà questo aggiornamento di tutte le funzioni? o solo di una cella? personalmente preferirei solo aggiornamento di una cella. forse la creazione di diversi pulsanti per fare tutte le diverse cellule di cui ho bisogno per generare, è possibile?
    • È possibile creare pulsanti separati, ciascuno con una macro separata per aggiornare una cella diversa; o pulsanti separati per aggiornare la stessa cella con valori diversi intervalli; o è possibile aggiornare la macro ad un pulsante per aggiornare più celle, solo con l’aggiunta di più linee di codice con le diverse posizioni e i valori che si desidera.
    • questo ha funzionato, ho quello che mi serve per continuare la creazione del file di excel per le mie esigenze, grazie mille!
  2. 2

    Tenta di seguito

    Private Sub CreateRandom()
    
      'random number between 11 and 100
      Debug.Print NewRandom(11, 100)
    
    End Sub
    
    Private Function NewRandom(ByVal FromLimit As Integer, ByVal ToLimit As Integer) As Integer
    
        Randomize
        randomNumber = Int((ToLimit - FromLimit) * Rnd) + FromLimit
        NewRandom = randomNumber
    
    End Function
    
    Private Sub CommandButton1_Click()
    
      'random number between 30 and 100
      Sheets("Sheet2").Range("A1").Value = NewRandom(30, 100)
    
    End Sub
  3. 1

    MI Consol:

    Sheets:
    Private Sub CommandButton1_Click()
    Call p
    End Sub
    
    Private Sub CommandButton3_Click()
    Call save
    End Sub
    
    Private Sub CommandButton4_Click()
    Call EMail
    End Sub
    
    Private Sub CommandButton5_Click()
    Call iSMS
    End Sub
    
    Private Sub CommandButton6_Click()
    Call continue
    End Sub
    
    Private Sub CommandButton7_Click()
    Call Continue1
    End Sub

Lascia un commento