Mình muốn tạo số nhập tự động trong khoảng từ 0 đến 10 trong nhiều cell có mã code xi

Liên hệ QC

ongtrungducmx25

Thành viên gạo cội
Tham gia
5/2/07
Bài viết
2,077
Được thích
1,986
Nghề nghiệp
GV
Xin cho hỏi khi em chọn một vung dữ liệu để nhập số tự nhiên từ 0 đến 10 chỉ được 10cell có cách nào chọn được nhiều cell không sau đây là đoạn
Code:
Mã:
[FONT=Times New Roman][SIZE=3]Private Sub chon_Click()[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3] Dim RandList(0 To 1000) As Integer[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3] Dim Count As Integer[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3] Dim num As Integer[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3] Count = 0[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3] Randomize[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3] For Each C In Selection[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3]       FindRand:[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3]       num = Int(Rnd * 10 + 1)[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3]       For i = 0 To Count[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3]             If num = RandList(i) Then GoTo FindRand[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3]       Next[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3]       C.Value = num[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3]       RandList(Count) = num[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3]       Count = Count + 1[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3] Next[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3]End Sub[/SIZE][/FONT]
Không biết sai ở đâu mong được chỉ thêm !&&&%$R -\\/. )*&^)
 
Chỉnh sửa lần cuối bởi điều hành viên:
Xin cho hỏi khi em chọn một vung dữ liệu để nhập số tự nhiên từ 0 đến 10 chỉ được 10cell có cách nào chọn được nhiều cell không
-Khi ta nhập số tự nhiên từ 1 đến 10 vào vùng chọn thì tất nhiên chỉ nhập vào trong 10 cells? (Trong code chỉ nhập số từ 1 đến 10 vì từ 0 đến 10 có 11 số). Chưa rõ ý của bạn. Bạn có thể giải thích rõ hơn không?
-Đoạn code này tạo ra một vòng lặp vô hạn khi trong RandList đã có đủ 10 số (1-10)
FindRand:
num = Int(Rnd * 10 + 1)

For i = 0 To Count
If num = RandList(i) Then GoTo FindRand
Next
 
Upvote 0
Mã:
[FONT=Times New Roman][SIZE=3]Private Sub chon_Click()[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3]Dim Rng As Range[/SIZE][/FONT]
[SIZE=3][FONT=Times New Roman] For Each Rng In Selection[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman]          Rng.Value = Rng.Value + 1[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman] Next Rng[/FONT][/SIZE]
[FONT=Times New Roman][SIZE=3] Dim RandList(0 To 1000) As Integer[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3] Dim Count As Integer[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3] Dim num As Integer[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3] Count = 0[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3] Randomize[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3] For Each C In Selection[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3]       FindRand:[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3]       num = Int(Rnd * 10 + 1)[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3]       For i = 0 To Count[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3]       Next[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3]       C.Value = num[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3]       RandList(Count) = num[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3]      Count = Count + 1[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3] Next[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3]End Sub[/SIZE][/FONT]
chỉ chọn được từ 1 đến 10 chứ không chọn được từ 0 đến 10 như mình nghỉ chọn được nhiều cell như không như ý mình
 
Upvote 0
Private Sub chon_Click()
Dim Rng As Range

For Each Rng In Selection
Rng.Value = Rng.Value + 1
Next Rng
Dim RandList(0 To 1000) As Integer
Dim Count As Integer
Dim num As Integer
Count = 0
Randomize
For Each C In Selection
FindRand:
num = Int(Rnd * 10 + 1)
For i = 0 To Count
Next
C.Value = num
RandList(Count) = num
Count = Count + 1
Next
End Sub
Chưa rõ ý đồ của bạn ở những dòng lệnh được đánh dấu trên.
Bạn có thể nói thật rõ ý của mình được không?
Nhập 10 số ngẫu nhiên vào các ô trong vùng chọn? Nhập vào tất cả các ô? Có qui luật gì không hay là số nào cũng được?
 
Upvote 0
nhap vao so nao cung duoc khong can theo dk nao mien la {0,1,2,...10} ok
 
Upvote 0
Thế thì đoạn code trên đã làm được điều bạn cần. (Có thể bớt đi một số dòng)
 
Upvote 0
Xin cho hỏi khi em chọn một vung dữ liệu để nhập số tự nhiên từ 0 đến 10
Mã:
[B]Sub Nature10()[/B]
 Dim Rng As Range
    For Each Rng In Range("A1:A99") [COLOR=blue]' 65500[/COLOR]
        With Rng
            Randomize
            .Value = Int(10 * Rnd() + 1)
        End With
    Next Rng
[B]End Sub  [/B]
Vầy có phải dễ cho mọi người, trong đó có bạn hơn không?!
 
Upvote 0
HYen17 đã viết:
Mã:
[B]Sub Nature10()[/B]
 Dim Rng As Range
    For Each Rng In Range("A1:A99") [COLOR=blue]' 65500[/COLOR]
        With Rng
            Randomize
            .Value = Int(10 * Rnd() + 1)
        End With
    Next Rng
[B]End Sub  [/B]
Vầy có phải dễ cho mọi người, trong đó có bạn hơn không?!

hàm của bạn có thể nhập công thức cho các ô không đó}}}}} __--__ @#!^% @!##
 
Upvote 0
ongtrungducmx25 đã viết:
hàm của bạn có thể nhập công thức cho các ô không đó}}}}} __--__ @#!^% @!##
Mình nghĩ là được; hãy tìm trên DĐàn:
* Nhập công thức = VBA;
(Mình đã thấy trên DĐàn này, bạn tìm lại xem sao! Hình như bài có liên quan đến bác Sa_DQ sao đó!)--=0
 
Upvote 0
ongtrungducmx25 đã viết:
....
hàm của bạn có thể nhập công thức cho các ô không đó}}}}} __--__ @#!^% @!##
.....
nhap vao so nao cung duoc khong can theo dk nao mien la {0,1,2,...10} ok
Nếu vậy thì bạn sử dụng ngay các hàm tạo số ngẫu nhiên của Excel thôi, rất đơn giản, đó là hàm Rand và RandBetween.
Chỉ khi nào bạn muốn kết hợp thêm các điều kiện đặc biệt nữa (các số không được trùng nhau....) thì mới dùng đến VBA.
VD:
Chọn vùng từ A1:A100 chẳng hạn, gõ =RANDBETWEEN(0,10) rồi nhấn Ctrl+Enter.
 
Upvote 0
Xin bạn nvson chỉ giúp nếu muốn số ngẫu nhiên không trùng nhau thì phải viết code như thế nào? Xin cám ơn.
 
Upvote 0
Web KT
Back
Top Bottom