Làm cách nào để chọn tất cả các đối tượng ActiveX trong một khu vực bằng chuột trong Excel?


1

Do vấn đề này với các đối tượng ActiveX thay đổi kích thước, tôi không nhóm các đối tượng ActiveX của mình trong bảng tính Excel. Nhóm chúng khiến cho giải pháp hack của tôi không hoạt động, điều này khá khó chịu.

Tuy nhiên, tôi thường muốn sử dụng chuột và chọn một vùng và sau đó chọn tất cả các đối tượng ActiveX có trong vùng. Điều này cũng sẽ hữu ích để dễ dàng chọn các đối tượng để nhóm chúng ban đầu.

Về cơ bản:

  • Sử dụng chuột để chọn khu vực
  • Tự động chọn tất cả các thành phần ActiveX trong khu vực

Tôi ổn với giải pháp VBA nếu cần.

Tôi có thể làm cái này như thế nào?


Nếu bạn có các đối tượng ActiveX, nhưng không có Hình dạng khác trên trang tính, sau đó lặp qua Hình dạng, kiểm tra từng thuộc tính TopLeftCell. Kiểm tra nếu bất kỳ trong số này giao nhau với Lựa chọn. Nếu có, sau đó thêm hình dạng đó vào một danh sách. Sau đó chọn danh sách Hình dạng.
Học sinh của Gary

Câu trả lời:


2

Xem xét:

Sub ShapePicker()
    Dim sh As Shape, st As Variant, Llist As String
    Dim ty As String
    Dim nm As String
    Dim r As Range

    Dim ary As Variant

    For Each sh In ActiveSheet.Shapes
        ty = sh.Type
        nm = sh.name
        Set r = sh.TopLeftCell
        If ty = msoOLEControlObject Then
            If Not Intersect(r, Selection) Is Nothing Then
                If Llist = "" Then
                    Llist = nm
                Else
                    Llist = Llist & "," & nm
                End If
            End If
        End If
    Next sh
    ary = Split(Llist, ",")
    ActiveSheet.Shapes.Range((ary)).Select
End Sub

Điều này thật tuyệt, tôi chưa bao giờ nghĩ sẽ sử dụng Intersect như thế này. Khá dễ dàng sửa đổi để có được tất cả các đối tượng quá.
enderland

Hãy vui vẻ với nó!
Học sinh của Gary
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.