Làm thế nào để bạn nhận được dữ liệu bảng tính trong Excel để tính toán lại chính nó từ bên trong VBA, mà không có kluge chỉ thay đổi một giá trị ô?Làm thế nào để bạn lấy Excel làm mới dữ liệu trên trang tính từ bên trong VBA?
Trả lời
Những dòng này sẽ làm các trick:
ActiveSheet.EnableCalculation = False
ActiveSheet.EnableCalculation = True
Edit: Phương pháp .Calculate() sẽ không làm việc cho tất cả các chức năng, tôi thử nghiệm nó trên một tờ với các chức năng mảng add-in. Các tờ sản xuất tôi đang sử dụng là phức tạp, đủ Tôi không muốn thử và thử nghiệm .CalculateFull() phương pháp, do đó, nó có thể làm việc.
này nên làm các trick ...
'recalculate all open workbooks
Application.Calculate
'recalculate a specific worksheet
Worksheets(1).Calculate
' recalculate a specific range
Worksheets(1).Columns(1).Calculate
xem nhận xét về câu trả lời của tôi –
Bạn cũng có thể thử
Application.CalculateFull
hoặc
Application.CalculateFullRebuild
nếu bạn không nhớ xây dựng lại tất cả các workbook mở, chứ không phải không chỉ là trang tính hoạt động. (CalculateFullRebuild
cũng xây dựng lại các phụ thuộc.)
Đôi khi Excel sẽ nấc cục và cần khởi động lại để áp dụng lại một phương trình. Điều này xảy ra trong một số trường hợp khi bạn đang sử dụng các công thức tùy chỉnh.
Hãy chắc chắn rằng bạn có kịch bản sau đây
ActiveSheet.EnableCalculation = True
Áp dụng lại phương trình của sự lựa chọn.
Cells(RowA,ColB).Formula = Cells(RowA,ColB).Formula
Điều này sau đó có thể được lặp lại nếu cần.
Tôi gặp sự cố khi tắt hình nền (hình mờ DRAFT) trong VBA. Thay đổi của tôi không hiển thị (được thực hiện với phương pháp Sheets(1).PageSetup.CenterHeader = ""
) - vì vậy tôi cần một cách để làm mới. Cách tiếp cận ActiveSheet.EnableCalculation
một phần đã làm các trick, nhưng không bao gồm các tế bào không sử dụng.
Cuối cùng tôi tìm thấy những gì tôi cần với một lót mà làm biến mất hình ảnh khi nó đã không còn thiết lập: -
Application.ScreenUpdating = True
- 1. Nhập dữ liệu bảng tính Excel vào một bảng tính Excel khác có chứa VBA
- 2. Làm cách nào để sao chép các cột từ trang tính này sang trang tính khác bằng VBA trong Excel?
- 3. Vấn đề với việc sử dụng OleDbDataAdapter để lấy dữ liệu từ một trang tính Excel
- 4. Viết Excel VBA để nhận dữ liệu từ Access
- 5. Làm cách nào để thay đổi tên trang tính từ C# trên bảng tính Excel
- 6. Làm mới Kết quả Chức năng Excel VBA
- 7. Làm cách nào để lấy dữ liệu từ truy vấn SQL trong Access VBA của microsoft?
- 8. Làm thế nào để xuất dữ liệu từ bảng tính Excel to SQL Server 2008 bảng
- 9. Làm thế nào để bạn chọn toàn bộ bảng tính excel với Phạm vi sử dụng Macro trong VBA?
- 10. Làm cách nào để xóa mọi thứ bên dưới hàng X trong VBA/Excel?
- 11. Làm thế nào để bạn tìm thấy Leapyear trong VBA?
- 12. Làm thế nào để ẩn một trang tính trong Excel bằng cách sử dụng OpenXML C#?
- 13. Cơ sở dữ liệu Truy cập SQL trong Excel VBA
- 14. Làm cách nào để lấy id của bản ghi vừa được chèn bằng VBA Excel?
- 15. Trích xuất VBA từ bảng tính Excel
- 16. Global.asax - Application_Error - Làm cách nào để lấy dữ liệu Trang?
- 17. Cách lấy địa chỉ ô có chức năng VBA trong trang tính Excel
- 18. Làm cách nào để gọi WCF từ Excel 2003 VBA?
- 19. tải tập tin đồng bộ từ bên trong VBA (Excel)
- 20. Làm mới lại ô "Cuối cùng" của Trang tính
- 21. Cách viết bộ sưu tập VBA vào trang tính Excel
- 22. Làm thế nào để bạn xử lý dữ liệu R bên trong một gói?
- 23. Làm thế nào để Khóa dữ liệu trong một ô trong excel bằng cách sử dụng vba
- 24. Làm thế nào để thiết lập một thử nghiệm đơn vị trong VBA Excel Macro?
- 25. Làm thế nào để bạn PIVOT trên một kiểu dữ liệu bit trong SQL Server?
- 26. Làm thế nào để VBA có thể kết nối với cơ sở dữ liệu MySQL trong Excel?
- 27. Làm thế nào để bạn redimension một mảng trong VBA?
- 28. Làm thế nào để xóa bảng tính excel khỏi sổ làm việc excel trong C#?
- 29. Làm cách nào tôi có thể lập trình cố định hàng trên cùng của trang tính Excel trong Excel 2007 VBA?
- 30. Excel VBA: Lấy giá trị từ Form Controls
Trên thực tế, có rất .Calculate() và .CalculateFull() phương pháp cho rằng, trên các cấp độ khác nhau. – GSerg
Tôi đã thử nghiệm Tính toán trên một trang tính và không phải tất cả các chức năng trong ô đều tính toán lại. Bạn cũng có thể làm điều đó bằng cách chuyển đổi 'bẩn' bit, nhưng tôi thấy đây là giải pháp dễ nhất. –
Sử dụng thuộc tính 'EnableCalculation' là một ý tưởng hay, bởi vì nó cho phép một trang tính được tính toán lại trên cấp độ Bảng tính. Ngược lại, 'Application.CalculateFull' buộc tính toán đầy đủ tất cả dữ liệu, không chỉ trong một Worksheet hoặc Workbook, mà còn trong ** tất cả các workbook mở **! Điều này có thể là quá mức cần thiết, đặc biệt là vì người dùng có thể mở một số sổ làm việc không liên quan, có khả năng phức tạp. – ricovox