Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 11

Chủ đề: Tạo 1 dãy số thứ tự từ 2 ô

  1. #1
    ichiase24h Guest

    Tạo 1 dãy số thứ tự từ 2 ô

    Chào các anh em trên diễn đàn.

    Mình muốn tạo 1 dãy số theo trình tự lớn đến nhỏ theo giá trị của 2 ô cho sẵn.
    Nhờ anh em chỉ giúp cho đoạn CODE ạ!
    Có người giúp mình làm dãy số ngẫu nhiên rồi theo CODE sau

    Sub number1()
    Range("a2:a10").Value = UniqueRandomNum([a1], [b1], 10)
    End Sub

    Giờ không biết chỉnh lại theo trính tự nhỏ đến lớn (không ngẫu nhiên) thì làm sao đây?
    Mình cám ơn nhiều lắm.

  2. #2
    dangnguyencctv.com Guest
    Trích dẫn Gửi bởi alodie123
    E muốn hỏi thêm :nên dùng range()...=Evaluate() hay range()...="=...." ?
    Thấy cái nào được thì xài chứ ai mà biết [IMG]images/smilies/a01.gif[/IMG]

  3. #3
    ngocsonops Guest
    Trích dẫn Gửi bởi dephamtg
    Chào các anh em trên diễn đàn.

    Mình muốn tạo 1 dãy số theo trình tự lớn đến nhỏ theo giá trị của 2 ô cho sẵn.
    Nhờ anh em chỉ giúp cho đoạn CODE ạ!
    Có người giúp mình làm dãy số ngẫu nhiên rồi theo CODE sau

    Sub number1()
    Range("a2:a10").Value = UniqueRandomNum([a1], [b1], 10)
    End Sub

    Giờ không biết chỉnh lại theo trính tự nhỏ đến lớn (không ngẫu nhiên) thì làm sao đây?
    Mình cám ơn nhiều lắm.
    chưa hiểu ý bạn là gì?
    "Mình muốn tạo 1 dãy số theo trình tự lớn đến nhỏ theo giá trị của 2 ô cho sẵn
    Có phải theo ý của bạn nếu ô A1 của bạn có giá trị là 3 thi nó sẽ in ra theo thứ tự là 3,4,5,6,7,8,... đúng không?


  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Đây là bài toán đơn giản in từ 1 đến 100 bạn thử phát triển tiếp xem sao
    Sub tt()
    For i = 1 To 100
    Cells(i, 1) = i
    Next i
    End Sub

  5. #5
    lehuan_138 Guest
    Bài toán: Nhập vào 2 số bất kỳ tại ô A1 và B1, sau đó in ra số tiếp theo của 2 số này
    Sub tt()
    Dim s1 As Integer, s2 As Integer
    s1 = InputBox("S1 = ", "Nhap S1", "")
    s2 = InputBox("S2", "Nhap S2", "")
    Cells(1, 1).Value = s1
    Cells(1, 2).Value = s2
    For i = 1 To 100
    Cells(i + 1, 1) = i + s1
    Cells(i + 1, 2) = i + s2
    Next i
    End Sub


    ps: có phải ý của bạn là bài toán này?

  6. #6
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Mã:
    Option Explicit
    Sub TaoDaySoTangDan()
     Dim J As Long, fNum As Long, lNum As Long
     
     With [A1]
        fNum = .Value:              lNum = .Offset(, 1).Value
     End With
     For J = 2 To 11
        Cells(J, "A").Value = fNum + J - 1
     Next J
    End Sub
    Mã nguồn PHP:
    Sub TaoDayGiamDan() Dim J As Long, fNum As Long, lNum As Long, Tmp As Long With [A1] fNum = .Value: lNum = .Offset(, 1).Value End With Tmp = lNum For J = 2 To 99 Tmp = Tmp - 1 If Tmp <= fNum Then Exit For Cells(J, "A").Value = Tmp Next J End Sub  

  7. #7
    BaoNgoc99 Guest
    Chơi chiêu "tà đạo" cái:

    Mã:
    Sub Test()
     Dim r1 As Long, r2 As Long
     r1 = Range("A1").Value: r2 = Range("B1").Value
     Range("A2").Resize(r2 - r1).Value = Evaluate("ROW(" & r1 + 1 & ":" & r2 & ")")
    End Sub
    Ẹc... Ẹc...
    -------------
    Chưa bẫy lỗi gì ráo ---> Hên xui

  8. #8
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Sub test()
    a = Range("A1"): b = Range("B1")
    ReDim arr(1 To b - a, 1)
    For i = 1 To b - a
    arr(i, 1) = Format(Rnd() * (b - a) + a, "0")
    Next i
    For d = LBound(arr) To UBound(arr) - 1
    For c = d + 1 To UBound(arr)
    If arr(d, 1) > arr(c, 1) Then
    strTemp = arr(d, 1)
    arr(d, 1) = arr(c, 1)
    arr(c, 1) = strTemp
    End If
    Next c
    Next d
    For i = 1 To UBound(arr)
    [b2].Offset(i - 1, 0) = arr(i, 1)
    Next i
    End Sub
    Sub test2()
    a = Range("A1"): b = Range("B1")
    ReDim arr(1 To b - a)
    For i = 1 To b - a
    arr(i) = Format(Rnd() * (b - a) + a, "0")
    Next i
    For d = LBound(arr) To UBound(arr) - 1
    For c = d + 1 To UBound(arr)
    If arr(c) > arr(d) Then
    strTemp = arr(c)
    arr(d) = arr(c)
    arr(d) = strTemp
    End If
    Next c
    Next d
    For i = 1 To UBound(arr)
    [b2].Offset(i - 1, 0) = arr(i)
    Next i
    End Sub
    Sub test3()
    a = Range("A1"): b = Range("B1"): r = 2
    For i = b - a To 1 Step -1
    Range("B" & r) = i + a
    r = r + 1
    Next i
    End Sub
    Sub test4()
    a = Range("A1"): b = Range("B1"): r = 2
    For i = 1 To b - a
    Range("B" & r) = i + a
    r = r + 1
    Next i
    End Sub

    có mấy đoạn codes bạn test thử xem.

  9. #9
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi ndu96081631
    Chơi chiêu "tà đạo" cái:
    Nhân tiện bác chỉ em đoạn code : Evaluate("ROW(" & r1 + 1 & ":" & r2 & ")")
    e mới Học VBA nên nhìn code này cũng thấy "tà"

  10. #10
    dtphong0001 Guest
    Trích dẫn Gửi bởi alodie123
    Nhân tiện bác chỉ em đoạn code : Evaluate("ROW(" & r1 + 1 & ":" & r2 & ")")
    e mới Học VBA nên nhìn code này cũng thấy "tà"
    Giả sử hiện tại r1 =10r2=20 nha
    Vậy đoạn "ROW(" & r1 + 1 & ":" & r2 & ")" sẽ tương đương với "ROW(11:20)" đúng không?
    Evaluate("ROW(" & r1 + 1 & ":" & r2 & ")") gần như tương đương với việc bạn quét chọn vùng A2:Ax rồi gõ vào thanh Formula công thức =ROW(11:20) va bấm Ctrl + Shift + Enter. Tiếp theo copy A2:Ax và Paste Values (để biến toàn bộ thành giá trị)
    Vậy thôi

Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •