TayMonKhanh
Thành viên mới

- Tham gia
- 9/11/08
- Bài viết
- 34
- Được thích
- 5
Em có 1 bảng tính như file đính kèm
Cấu trúc nó như sau:
Khi cho ô “Y chọn” chạy từ giá trị “min Y” đến giá trị “max Y” thì giá trị ô “Binh2” sẽ tăng dần lên, khi ô “Y chọn” tăng đến 1 giá trị nào đó thì giá trị ô “Binh2” = giá trị ô “Binh1”.
Mục đích của em là tìm giá trị ô “Y chọn” tại thời điểm giá trị ô “Binh2” = giá trị ô “Binh1”.
Mong muốn là tìm được “Binh2”= “Binh1”, nhưng em không rành macro lắm nên em chỉ mong tìm được vị trí “Binh2”- “Binh1” < 0.1 là mừng lắm rồi.
Em lập macro như sau:
Sheets("Sheet1").Range("N25").Value = Sheets("Sheet1").Range("N26").Value ‘Ymin
Do While Sheets("Sheet1").Range("S25").Value > 0.1 ‘sai so Binh 2 va Binh 1
Sheets("Sheet1").Range("N25").Value = Sheets("Sheet1").Range("N25").Value + 3 ‘buoc nhay
Loop
Lập như vầy thì nó có 2 vấn đề:
1. Bước nhảy lần lượt bằng 3 thì khi gặp bảng tính có biên độ Y lớn thì macro chạy rất lâu.
2. Khi gặp bảng tính có biên độ Y nhỏ thì bước nhảy Y lại quá lớn, đôi khi macro nhảy qua 1 nấc là giá trị Binh2 đã vượt xa độ sai số mà em mong muốn.
Em muốn chỉnh sửa sao cho:
Ban đầu cho vòng Do While chạy với bước nhảy thật lớn. Sau khi tìm được vị trí có “Binh2” gần bằng “Binh1” cho vòng Do While chạy với bước nhảy nhỏ hơn… cứ như vậy lặp lại vài lần để cho kết quả tính chính xác và thời gian tính được ngắn hơn.
Kính nhờ các Anh và các bạn hỗ trợ.
Trân trọng!
Cấu trúc nó như sau:
Khi cho ô “Y chọn” chạy từ giá trị “min Y” đến giá trị “max Y” thì giá trị ô “Binh2” sẽ tăng dần lên, khi ô “Y chọn” tăng đến 1 giá trị nào đó thì giá trị ô “Binh2” = giá trị ô “Binh1”.
Mục đích của em là tìm giá trị ô “Y chọn” tại thời điểm giá trị ô “Binh2” = giá trị ô “Binh1”.
Mong muốn là tìm được “Binh2”= “Binh1”, nhưng em không rành macro lắm nên em chỉ mong tìm được vị trí “Binh2”- “Binh1” < 0.1 là mừng lắm rồi.
Em lập macro như sau:
Sheets("Sheet1").Range("N25").Value = Sheets("Sheet1").Range("N26").Value ‘Ymin
Do While Sheets("Sheet1").Range("S25").Value > 0.1 ‘sai so Binh 2 va Binh 1
Sheets("Sheet1").Range("N25").Value = Sheets("Sheet1").Range("N25").Value + 3 ‘buoc nhay
Loop
Lập như vầy thì nó có 2 vấn đề:
1. Bước nhảy lần lượt bằng 3 thì khi gặp bảng tính có biên độ Y lớn thì macro chạy rất lâu.
2. Khi gặp bảng tính có biên độ Y nhỏ thì bước nhảy Y lại quá lớn, đôi khi macro nhảy qua 1 nấc là giá trị Binh2 đã vượt xa độ sai số mà em mong muốn.
Em muốn chỉnh sửa sao cho:
Ban đầu cho vòng Do While chạy với bước nhảy thật lớn. Sau khi tìm được vị trí có “Binh2” gần bằng “Binh1” cho vòng Do While chạy với bước nhảy nhỏ hơn… cứ như vậy lặp lại vài lần để cho kết quả tính chính xác và thời gian tính được ngắn hơn.
Kính nhờ các Anh và các bạn hỗ trợ.
Trân trọng!