VBA untuk memindahkan kotak teks berfungsi, dan kemudian berhenti bekerja


1

Kode ini harus menemukan kotak teks biasa / dasar pada lembar kerja dan kemudian memindahkannya ke kiri. Lalu buka lembar berikutnya dan lakukan hal yang sama. Lakukan sampai lembar terakhir.

Ini berfungsi (seperti yang saya lakukan melalui siklus menggunakan F8), tetapi kemudian lembar berikutnya dikatakan objek tidak mendukung properti metode ini .

Saya tidak tahu mengapa ini terjadi.

Dim I As Integer
Dim txBox As Shape
Set txBox = ActiveSheet.Shapes("Text Box 1")


For I = 1 To Worksheets().Count
    Worksheets(I).Activate
    txBox.Select
    **Selection.ShapeRange.IncrementLeft 586.5**

Next I

End Sub

Jawaban:


3

Dengan asumsi kotak teks bernama "Kotak Teks 1" pada setiap lembar, Anda hanya perlu memindahkan Set txBox =garis di dalam Forlingkaran Anda . Jika tidak, txBoxmerujuk hanya ke kotak teks pada lembar yang aktif saat Anda memulai makro Anda. Karena txBoxtidak lagi pada lembar aktif, Selectiontidak merujuk ke txBox, tetapi lebih cenderung sel dan tidak perlu kotak teks, maka kesalahan "Objek tidak mendukung properti atau metode ini". Kode di bawah ini diharapkan akan melakukan trik atau setidaknya membuat Anda bergerak ke arah yang benar.

Dim I As Integer
Dim txBox As Shape

For I = 1 To Worksheets().Count
    Worksheets(I).Activate
    Set txBox = ActiveSheet.Shapes("Text Box 1")
    txBox.Select
    Selection.ShapeRange.IncrementLeft 586.5
Next I

Edit:
Sebagai samping, Anda dapat meningkatkan kinerja makro Anda dengan menghindari semua .Select, .Activate, Selectionpanggilan.

Dim ws as Worksheet
Dim txBox As Shape

For Each ws in Worksheets
    Set txBox = ws.Shapes("Text Box 1")
    txBox.IncrementLeft 586.5
Next ws

Terima kasih. Saya telah menggunakan contoh kode peningkatan kinerja Anda dan ini bekerja dengan baik.
RocketGoal
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.