- Tham gia
- 23/3/16
- Bài viết
- 705
- Được thích
- 52
@minhtuan55
Hinh như các cặp số này có tên gọi khác nữa thì phải
Hàm PERMUT có thể tính được số lượng kêt quả, nhưng mà chắc là thớt muốn liệt kê thì phải. Khổ vậy?!Kiểu như hoán vị. Từ 1 dãy số sẽ có bao nhiêu số không trùng nhau. Em có file tính được có bao nhiêu số chứ không tính ra được chi tiết bao gồm những số nào.
Sub camon()
Dim i as long
For i = 1 to 100000000000000000000
Xin chân thành cảm ơn = Xin chân thành cảm ơn + i
Next i
End sub
Hàm PERMUT có thể tính được số lượng kêt quả, nhưng mà chắc là thớt muốn liệt kê thì phải. Khổ vậy?!
code trong hình bài 6 giải quyết được chưa bạnđúng rồi bác. phải liệt kê ra mới được anh à
Muốn biết đán án thì đọc Link nàycode trong hình bài 6 giải quyết được chưa bạn
Cám ơn bác. Hóa ra là đồ hàng mãMuốn biết đán án thì đọc Link này
Code Xê Cọng Cọng Xịn dùng để hù dân Vê Bê A
Chào cả nhà GPE. em cần 1 đoạn code tách 1 số thành nhiều cặp số không trùng
Ví dụ số 123 thì sẽ 6 trường hợp , 1234 thì có 24 trường hợp ( Giai thừa )
View attachment 215114
Sub camon()
Dim i as long
For i = 1 to 100000000000000000000
Xin chân thành cảm ơn = Xin chân thành cảm ơn + i
Next i
End sub
Option Explicit
Dim Dic As Object
Sub Main()
Dim sText As String
Dim Arr(), Keys
Dim t As Double, n As Long, lCount As Long
t = Timer
Set Dic = CreateObject("Scripting.Dictionary")
sText = "123" '<--- Thay giá tri khác tùy ý
UniquePermu "", sText
If Dic.Count Then
Range("A:A").ClearContents
lCount = Dic.Count
ReDim Arr(1 To lCount, 1 To 1)
Keys = Dic.Keys
For n = 1 To lCount
Arr(n, 1) = Keys(n - 1)
Next
Range("A1").Resize(lCount) = Arr
MsgBox lCount & " Items found!", , "(" & Format(Timer - t, "0.000") & "s)"
End If
End Sub
Sub UniquePermu(x As String, y As String)
Dim i As Long, j As Long, tmp As String
j = Len(y)
If j < 2 Then
tmp = x & y
If Not Dic.Exists(tmp) Then Dic.Add tmp, ""
Else
For i = 1 To j
UniquePermu x & Mid(y, i, 1), Left(y, i - 1) & Right(y, j - i)
Next
End If
End Sub
Sử dung code bên dưới của anh NDU nha: chạy sub Main
Mã:Option Explicit Dim Dic As Object Sub Main() Dim sText As String Dim Arr(), Keys Dim t As Double, n As Long, lCount As Long t = Timer Set Dic = CreateObject("Scripting.Dictionary") sText = "123" '<--- Thay giá tri khác tùy ý UniquePermu "", sText If Dic.Count Then Range("A:A").ClearContents lCount = Dic.Count ReDim Arr(1 To lCount, 1 To 1) Keys = Dic.Keys For n = 1 To lCount Arr(n, 1) = Keys(n - 1) Next Range("A1").Resize(lCount) = Arr MsgBox lCount & " Items found!", , "(" & Format(Timer - t, "0.000") & "s)" End If End Sub Sub UniquePermu(x As String, y As String) Dim i As Long, j As Long, tmp As String j = Len(y) If j < 2 Then tmp = x & y If Not Dic.Exists(tmp) Then Dic.Add tmp, "" Else For i = 1 To j UniquePermu x & Mid(y, i, 1), Left(y, i - 1) & Right(y, j - i) Next End If End Sub
Nhưng code đấy không chạy được.Mình xin trả lời ngắn gọn bằng đoạn code sau
Sub baocao()
Dim i as long
For i = 1 to 99999999999999999999999999999999999999
Chính xác = Chính xác + i
Next i
Endsub
Nhưng code đấy không chạy được.
- nên khai báo tường minh mọi biến
- tên biến không được phép có dấu cách
- cái số dài kia VBA sẽ chuyển về dạng "ngắn gọn không chính xác"
- cái số "bự" kia không nhồi được vào biến LONG
- không có từ khóa Endsub
- kết quả để làm gì? Hay chạy code chỉ để xài điện nước và giết thời gian?
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2