Cần giúp viết Code để cho kết quả tại ô cell thể hiện công thức (Không phải số chết) (1 người xem)

Người dùng đang xem chủ đề này

hung2412

Thành viên tích cực
Tham gia
5/8/08
Bài viết
934
Được thích
240
Giới tính
Nam
Chào các bạn GPE!
Nhờ các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Dọc theo cột C và D là các ô bao gồm các số => Lấy ô ở cột C trừ đi ô cùng dòng ở cột D (Đặt kết quả ở ô tại cột E cùng dòng với cột C và cột D) => Tôi xài Code:
PHP:
Option Explicit
Sub Hieuso()
Dim t As Long
For t = 5 To 10
Cells(t, 5) = Cells(t, 3) - Cells(t, 4)
Next
End Sub
=> Code này chỉ cho kết quả là số chết (Không phải công thức) => Làm thế nào để Code trên cho kết quả là số thể hiện công thức (Không phải số chết)?
Mong các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm.
 

File đính kèm

  • 1.xls
    1.xls
    15.5 KB · Đọc: 10
Lần chỉnh sửa cuối:
Chào các bạn GPE!
Nhờ các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Dọc theo cột C và D là các ô bao gồm các số => Lấy ô ở cột C trừ đi ô cùng dòng ở cột D (Đặt kết quả ở ô tại cột E cùng dòng với cột C và cột D) => Tôi xài Code:
PHP:
Option Explicit
Sub Hieuso()
Dim t As Long
For t = 5 To 10
Cells(t, 5) = Cells(t, 3) - Cells(t, 4)
Next
End Sub
=> Code này chỉ cho kết quả là số chết (Không phải công thức) => Làm thế nào để Code trên cho kết quả là số thể hiện công thức (Không phải số chết)?
Mong các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm.
Không muốn "số chết" thì xài công thức cho khỏe chứ dùng code chi cho phức tạp vậy bạn? Cái hay của code là để trong file không có công thức, file sẽ nhẹ nhàng hơn. Bây giờ dùng code lại để gán công thức lên sheet thì dùng tay mà gõ cho nó khỏe.
 
Upvote 0
Không muốn "số chết" thì xài công thức cho khỏe chứ dùng code chi cho phức tạp vậy bạn? Cái hay của code là để trong file không có công thức, file sẽ nhẹ nhàng hơn. Bây giờ dùng code lại để gán công thức lên sheet thì dùng tay mà gõ cho nó khỏe.
Dạ, tôi biết là xài công thức cho khỏe => Nhưng vì có 2 lý do:
- Đoạn này nằm trong một dự án nên buộc phải là Code ạ.
- Tôi đang nghiên cứu (Để học hỏi thêm nhiều phương án) tại sao lại không phải là công thức?.
 
Upvote 0
Dạ, tôi biết là xài công thức cho khỏe => Nhưng vì có 2 lý do:
- Đoạn này nằm trong một dự án nên buộc phải là Code ạ.
- Tôi đang nghiên cứu (Để học hỏi thêm nhiều phương án) tại sao lại không phải là công thức?.
Vẫn quyết tâm dùng code để gán công thức thì bạn có thể tham khảo code này
[GPECODE=vb]Sub Test()
Dim eR As Long
eR = Sheet1.Range("C5").CurrentRegion.Find("*", , , , , xlPrevious).Row
Sheet1.Range("E5:E" & eR) = "=RC[-2]-RC[-1]"
End Sub[/GPECODE]
 
Upvote 0
Vẫn quyết tâm dùng code để gán công thức thì bạn có thể tham khảo code này
[GPECODE=vb]Sub Test()
Dim eR As Long
eR = Sheet1.Range("C5").CurrentRegion.Find("*", , , , , xlPrevious).Row
Sheet1.Range("E5:E" & eR) = "=RC[-2]-RC[-1]"
End Sub[/GPECODE]
Dạ, kiểu tham chiếu R1C1 thì tôi biết ạ. Cái tôi mong muốn là Code ở #1 sao cho hiện công thức ạ.

Ngoài lề một tí: Làm sao bạn viết được nền Code có số 1, 2, 3,... đẹp vậy?
 
Upvote 0
Chào các bạn GPE!
Nhờ các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Dọc theo cột C và D là các ô bao gồm các số => Lấy ô ở cột C trừ đi ô cùng dòng ở cột D (Đặt kết quả ở ô tại cột E cùng dòng với cột C và cột D) => Tôi xài Code:
PHP:
Option Explicit
Sub Hieuso()
Dim t As Long
For t = 5 To 10
Cells(t, 5) = Cells(t, 3) - Cells(t, 4)
Next
End Sub
=> Code này chỉ cho kết quả là số chết (Không phải công thức) => Làm thế nào để Code trên cho kết quả là số thể hiện công thức (Không phải số chết)?
Mong các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm.

Sửa lai code của bạn
PHP:
Option Explicit
Sub Hieuso()
Dim t As Long
For t = 5 To 10
Range("E" & t) = "=R[" & t - t & "]C[-2]-R[" & t - t & "]C[-1]"
Next
End Sub
Trong[] giữa mỗi ký tự là 1 dấu cách
---------
Đã sửa lại trong [] cho chính xác
 
Lần chỉnh sửa cuối:
Upvote 0
Vẫn quyết tâm dùng code để gán công thức thì bạn có thể tham khảo code này
[GPECODE=vb]Sub Test()
Dim eR As Long
eR = Sheet1.Range("C5").CurrentRegion.Find("*", , , , , xlPrevious).Row
Sheet1.Range("E5:E" & eR) = "=RC[-2]-RC[-1]"
End Sub[/GPECODE]
Làm ngắn hơn miền cao nguyên mới được
PHP:
Sub abc()
Range("E5:E" & [C:C].SpecialCells(11).Row) = "=RC[-2]-RC[-1]"
End Sub
 
Upvote 0
Dạ, kiểu tham chiếu R1C1 thì tôi biết ạ. Cái tôi mong muốn là Code ở #1 sao cho hiện công thức ạ.

Ngoài lề một tí: Làm sao bạn viết được nền Code có số 1, 2, 3,... đẹp vậy?
Chứ bộ R1C1 thì không hiện công thức à? Bạn đã kiểm tra chưa vậy?

Còn cái ngoài lề thì bạn sử dụng nút lệnh GPE Code ở trên thanh công cụ soạn thảo (hàng thứ 3, có biểu tượng chữ GPE), khi hiện hộp thoại thì gõ chữ vb vào rồi Enter, dán đoạn code vào đó, sẽ phải chỉnh sửa chút xíu ở dòng đầu tiên. Chi tiết, bạn tham khảo topic GPECODE - dùng cho các đoạn code
 
Upvote 0
Tôi biết là có công thức mà, như theo đề tài là tôi muốn biến đổi Code ở #1 từ số chết thành công thức ạ? Chắc là không được rồi.
Nếu bạn muốn lập công thức hoặc gán số thì dễ, còn muốn từ một con số mà biến nó thành công thức thì tôi tin là chẳng ai làm được. Ví dụ: Tôi có số 1 ở tại 1 ô nào đó, đố bạn biết số 1 này được tạo thành bằng cách nào đấy?
 
Upvote 0
Nếu bạn muốn lập công thức hoặc gán số thì dễ, còn muốn từ một con số mà biến nó thành công thức thì tôi tin là chẳng ai làm được. Ví dụ: Tôi có số 1 ở tại 1 ô nào đó, đố bạn biết số 1 này được tạo thành bằng cách nào đấy?
Ý tôi mong muốn không phải như bạn nghĩ đâu. Không phải là biến số chết thành công thức (Cái này chắc là không thể rồi). Nói như thế nào nhỉ? Chỉ là làm sao để biến đổi Code ở #1 sao cho kết quả là công thức thôi mà.
 
Upvote 0
Nếu bạn muốn lập công thức hoặc gán số thì dễ, còn muốn từ một con số mà biến nó thành công thức thì tôi tin là chẳng ai làm được. Ví dụ: Tôi có số 1 ở tại 1 ô nào đó, đố bạn biết số 1 này được tạo thành bằng cách nào đấy?
Không có gì là khó. Mà nếu khó quá thì.... biết rồi đó.
 
Upvote 0
Ý tôi mong muốn không phải như bạn nghĩ đâu. Không phải là biến số chết thành công thức (Cái này chắc là không thể rồi). Nói như thế nào nhỉ? Chỉ là làm sao để biến đổi Code ở #1 sao cho kết quả là công thức thôi mà.
Kết quả là công thức thì chính là cách sử dụng R1C1 tôi đã làm đấy thôi. Vậy thì cuối cùng bạn cần điều gì nhỉ?
 
Upvote 0
Kết quả là công thức thì chính là cách sử dụng R1C1 tôi đã làm đấy thôi. Vậy thì cuối cùng bạn cần điều gì nhỉ?
Đúng là kết quả là dạng công thức => Mong muốn của tôi không phải Code ở dạng tham chiếu R1C1 (Cái này cũng đơn giản nằm trong tầm với của tôi mà). Mong muốn của tôi là Code xoay quanh dạng Cells(t, 5) = Cells(t, 3) - Cells(t, 4)
 
Upvote 0
Đúng là kết quả là dạng công thức => Mong muốn của tôi không phải Code ở dạng tham chiếu R1C1 (Cái này cũng đơn giản nằm trong tầm với của tôi mà). Mong muốn của tôi là Code xoay quanh dạng Cells(t, 5) = Cells(t, 3) - Cells(t, 4)
Hỏi lại thêm một lần nữa, khi chọn vào một ô trên cột E, ô E5 chẳng hạn, thì bạn muốn nhìn thấy cái gì trên thanh công thức, có phải là công thức =C5-D5 hay không?
 
Upvote 0
Hỏi lại thêm một lần nữa, khi chọn vào một ô trên cột E, ô E5 chẳng hạn, thì bạn muốn nhìn thấy cái gì trên thanh công thức, có phải là công thức =C5-D5 hay không?
Ah, đúng như bạn nói. Nhưng tôi quan tâm cả công thức =C5-D5 lẫn Code xoay quanh dạng Cells(t, 5) = Cells(t, 3) - Cells(t, 4).
 
Upvote 0
Hỏi lại thêm một lần nữa, khi chọn vào một ô trên cột E, ô E5 chẳng hạn, thì bạn muốn nhìn thấy cái gì trên thanh công thức, có phải là công thức =C5-D5 hay không?
Công nhận Phúc kiên nhẫn ghê luôn
Thực ra là vầy nè Phúc ơi
PHP:
Sub abc()
Dim Row
For Row = 5 To 10
   Cells(Row, 5) = "=C" & Row & "-D" & Row
Next
End Sub
 
Upvote 0
Ah, đúng như bạn nói. Nhưng tôi quan tâm cả công thức =C5-D5 lẫn Code xoay quanh dạng Cells(t, 5) = Cells(t, 3) - Cells(t, 4).
Theo ý kiến cá nhân của tôi thì khi đã dùng code thì không nên đưa công thức lên sheet nữa, nên tận dụng thế mạnh của VBA, có thể trung gian sử dụng công thức để tính toán, nhưng mà cuối cùng thì vẫn Paste values lại cho file nhẹ nhàng, kể cả về kích thước file và cả tốc độ tính toán.
 
Upvote 0
Theo ý kiến cá nhân của tôi thì khi đã dùng code thì không nên đưa công thức lên sheet nữa, nên tận dụng thế mạnh của VBA, có thể trung gian sử dụng công thức để tính toán, nhưng mà cuối cùng thì vẫn Paste values lại cho file nhẹ nhàng, kể cả về kích thước file và cả tốc độ tính toán.
Nhiều trường hợp cần để dạng công thức để tiện kiểm tra lại. Chứ dạng số chết (Value) thì sau một thời gian đọc lại thì không biết ô nào trừ đi ô nào cả bạn ơi.
 
Upvote 0
Nhiều trường hợp cần để dạng công thức để tiện kiểm tra lại. Chứ dạng số chết (Value) thì sau một thời gian đọc lại thì không biết ô nào trừ đi ô nào cả bạn ơi.
Vậy thì bạn viết code, đặt công thức lên sheet, cuối cùng sau khi đã có kết quả thì Paste values lại vùng đã gán công thức (câu lệnh có dạng Rng.Value = Rng.Value). Khi nào muốn xem công thức để kiểm tra thì vào code, khóa câu lệnh Paste values lại, vậy là có thể nhìn thấy công thức trên sheet.
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom