Câu hỏi Làm thế nào để lập trình một phần của một chuỗi trong một ô được tính toán


Tôi có một ô có chứa một cái gì đó như thế này:

="String of text that's moderately long" & YEAR(NOW()) & "."

Tôi muốn biết nếu có bất kỳ cách nào, thông qua macro, tôi có thể tô màu / cách điệu PHẦN của kết quả chuỗi. Như:

String of text [that's] {moderately} <long/2013.>

với phần trong dấu ngoặc vuông có màu đỏ, phần trong dấu ngoặc nhọn màu xanh dương và phần được gạch chân <>.

Tôi đã thử điều này:

Private Sub Workbook_Open()
    With Sheet1
        With .Cells(8, 1).Characters(25, 9).Font
            .Color = vbRed
        End With

        With .Cells(8, 1).Characters(34, 3).Font
            .Color = vbBlack
        End With

        With .Cells(8, 1).Characters(37, 9).Font
            .Color = vbBlue
        End With

        With .Cells(8, 1).Characters(47).Font
            .Color = vbBlack
            .Underline = True
        End With
    End With
End Sub

và trong khi nó hoạt động, nó chỉ có vẻ hoạt động chính xác trên các ô nội dung cố định, chứ không phải các ô có công thức như tôi có. Vì vậy, yeah, bất kỳ ý tưởng?

Tôi không hoàn toàn sai khi lấp đầy ô hoàn toàn từ VBA, trong trường hợp đó là những gì nó nói đến.


2
2018-02-02 16:06


gốc


Đó không phải là một bản sao. Các phương pháp liên kết  Characters(start, length) không hoạt động trong kịch bản này vì nó không phải là giá trị cố định. Tiêu đề câu hỏi cần được điều chỉnh để phản ánh sự khác biệt. - nixda
@nixda Câu hỏi mở cửa trở lại. Vui lòng đề xuất chỉnh sửa để giải quyết vấn đề đó. - slhck


Các câu trả lời:


Có hai cách để mô tả nội dung của ô:

  1. Nội dung thực tế và
  2. các nội dung hình ảnh rõ ràng sau khi bảng tính được đánh giá sau một phép tính.

Đối với một chuỗi hoặc nội dung cố định, chúng giống nhau. Nhưng đối với một công thức, chúng hoàn toàn khác nhau. Mã VBA của bạn đang xử lý nội dung của ô (1), không phải là kết quả (2). Vì vậy, có, bạn sẽ phải lấy nội dung từ các công thức của bạn và di chuyển chúng đến các ô nội dung cố định, nơi định dạng vba của bạn sẽ hoạt động.

Các tùy chọn là sử dụng hàng ẩn cho các công thức và hàng hiển thị cho màn hình thực tế. Nếu thiếu sót của một số hàng bằng cách sử dụng một tham chiếu hàng ẩn là quá khó xử / có thể nhìn thấy cho người dùng dự định, sử dụng một tờ riêng biệt có thể là một thay thế.


2
2018-02-02 16:49



Tôi hiểu rồi. Cảm ơn bạn đã trả lời, nó giải thích rất nhiều. =) Tôi đã kết thúc cách mã khỉ và điền + định dạng toàn bộ ô qua VBA khi tài liệu được mở. Cảm ơn lời giải thích! - fbordas