Nếu công thức giống hệt nhau, bạn có thể sử dụng Tìm và thay thế bằng Match entire cell contents
đã chọn và Look in: Formulas
. Chọn phạm vi, đi vào Tìm và Thay thế, tạo các mục nhập của bạn và `Thay thế Tất cả.
Hoặc bạn có nghĩa là có một số công thức với hình thức này giống nhau, nhưng tài liệu tham khảo tế bào khác nhau? Nếu vậy, thì một cách để đi là biểu thức chính quy khớp và thay thế. Các biểu thức chính quy không được xây dựng trong Excel (hoặc VBA), nhưng có thể được truy cập thông qua thư viện VBScript Regular Expressions của Microsoft.
Hàm sau đây cung cấp khả năng khớp và thay thế cần thiết. Nó có thể được sử dụng trong một chương trình con sẽ xác định các ô có công thức trong phạm vi được chỉ định và sử dụng các công thức làm đầu vào cho hàm. Đối với các chuỗi công thức phù hợp với mẫu bạn đang tìm kiếm, hàm sẽ tạo ra công thức thay thế, sau đó có thể được viết lại thành trang tính.
Function RegexFormulaReplace(formula As String)
Dim regex As New RegExp
regex.Pattern = "=\(\(([A-Z]+\d+)-([A-Z]+\d+)\)/([A-Z]+\d+)\)"
' Test if a match is found
If regex.Test(formula) = True Then
RegexFormulaReplace = regex.Replace(formula, "=(EXP((LN($1/$2)/14.32))-1")
Else
RegexFormulaReplace = CVErr(xlErrValue)
End If
Set regex = Nothing
End Function
Để chức năng hoạt động, bạn cần phải thêm tham chiếu vào thư viện Microsoft VBScript Regular Expressions 5.5. Từ tab Developer
của dải băng chính, chọn VBA
và sau đó References
từ thanh công cụ chính. Cuộn xuống để tìm tham chiếu đến thư viện và chọn hộp bên cạnh thư viện.
* khắp nơi * - vì vậy không phải bất kỳ cột hoặc hàng nào? Khoảng bao nhiêu là * tất cả *? – pnuts
Tất cả các nơi có nghĩa là có ba cột khác nhau trong đó công thức sẽ xảy ra với tổng số là 31 lần. Tôi đã chuyển sang R1C1 vì cấu trúc giống nhau trong mọi trường hợp. Xem câu trả lời của tôi. – Tomulent
Chuyển sang định dạng RC là cách để thực hiện điều này trên quy mô lớn nhưng không đáng giá cho (như tôi nghi ngờ) có quy mô nhỏ. Tâm trí bạn, tôi sẽ xem xét 31 quy mô nhỏ! Cho exa, ple các câu trả lời khác, tôi nghĩ rằng đây là một câu hỏi xứng đáng có một điểm số tốt, vì vậy +1 của tôi - mặc dù điều đó chỉ trả về 0 Tôi sợ. – pnuts