Miền Cát Trắng
Thành viên hoạt động



- Tham gia
- 18/5/13
- Bài viết
- 171
- Được thích
- 37



. Tạm có cái code đây, hàm Rnd cho giá trị ngẫu nhiên từ 0 đến 1 nên có thể bạn thay đổi theo ý muốn bằng cách nhân thêm giá trị nào đó như 50 chẳng hạn. Có 6 giá trị đơn lẻ thì lấy 100/6 để nhân với Rnd cũng tạm ổn. Nếu không khống chế thì giá trị cuối có thể mang dấu âm.Sub CreateRnd()
Dim RndRange As Range, Cel As Range, TongRnd As Integer
Set RndRange = Range("E7:I7")
TongRnd = 0
For Each Cel In RndRange
Cel.Value = Round(Rnd * 50, 0)
TongRnd = TongRnd + Cel.Value
Next
Range("J7").Value = Range("D7") - TongRnd
Set RndRange = Nothing
End Sub



Có anh đi học VBA suốt mà không nhờ. Tạm có cái code đây, hàm Rnd cho giá trị ngẫu nhiên từ 0 đến 1 nên có thể bạn thay đổi theo ý muốn bằng cách nhân thêm giá trị nào đó như 50 chẳng hạn. Có 6 giá trị đơn lẻ thì lấy 100/6 để nhân với Rnd cũng tạm ổn. Nếu không khống chế thì giá trị cuối có thể mang dấu âm.
Mã:Sub CreateRnd() Dim RndRange As Range, Cel As Range, TongRnd As Integer Set RndRange = Range("E7:I7") TongRnd = 0 For Each Cel In RndRange Cel.Value = Round(Rnd * 50, 0) TongRnd = TongRnd + Cel.Value Next Range("J7").Value = Range("D7") - TongRnd Set RndRange = Nothing End Sub
.Option Explicit
Sub CreateRnd()
Dim Rng As Range, Cls As Range
Dim J As Byte, TongRnd As Long
Set Rng = Range("E7:I7")
TongRnd = [d7].Value \ (Rng.Cells.Count + 1)
For Each Cls In Rng
J = J + 1: Randomize
Cls.Value = TongRnd - (2 * Rnd())
Next
Range("J7").Value = [d7].Value - Application.WorksheetFunction.Sum(Rng)
Set Rng = Nothing
End Sub




Xin chào các bạn!
Tôi đang gặp một vấn đề như đã nêu trong file kèm,nhờ các bạn giúp đỡ.
Xin cảm ơn
Bạn thử công thức này từ E7 đến I7:Không lấy giá trị =0 và nhỏ hơn 0. Có thể là cả số thập phân và nguyên dương xen lẫn cũng được.