Saya memiliki xla dengan banyak fungsi. Pada dasarnya masing-masing fungsi ini melakukan pencarian vertikal pada lembar kerja lain. Berikut adalah contoh dasar dari salah satunya:
Function ax2Project_Address(projectnumber)
If (projectnumber = "?") Then
ax2Project_Address = "Unknown address"
Else
ax2Project_Address = Application.VLookup(projectnumber, Sheets("AX Data").Range("A:K"), 11, False)
End Function
Ini memungkinkan pengguna untuk cukup memanggil fungsi dengan nomor proyek pada lembar kerja dan memberi mereka alamat, tanpa harus menulis sendiri pencarian vertikal.
Yang ingin saya lakukan sekarang adalah memiliki baris sel saat ini untuk secara otomatis menyesuaikan ketinggiannya dengan kontennya. Masalahnya adalah bahwa ini jelas harus dilakukan setelah sel diisi dengan alamat, tetapi karena fungsi berakhir setelah kembali, perintah autofit tidak akan dieksekusi.
Apakah ada cara untuk menjalankan perintah autofit dalam suatu fungsi setelah pengembalian?
Atau ada pendekatan yang sangat berbeda yang bisa saya gunakan?
sumber
Worksheet_calculate
acara dan itu akan berjalan setiap kali lembar telah dihitung ulang.Application.Evaluate
tapi aku tidak bisa membuatnya bekerjaAutofit
. saya pikirWorksheet_calculate
acara adalah taruhan terbaik Anda.Jawaban:
Fungsi tidak dapat mengubah apa pun di excel kecuali untuk sel yang dipanggil. Yang dikatakan, saya cukup yakin suatu fungsi dapat memicu rutinitas -
eieio (12) = 6 dan msgbox "hi"
Yang sedang berkata, apa yang Anda tidak bisa lakukan sesuatu seperti ini -
Jadi rutinitas tidak dapat mengubah aplikasi. Panggilan sejauh yang saya tahu. Selalu seperti itu.
sumber
Test()
Anda menggunakanWorksheet_Calculate()
acara untuk autofit berdasarkan variabel global.Me.Cells(x,1).EntireRow.Autofit
Worksheet_Change
jadi saya bisa melewati target, tetapi itu tidak konsisten. Saya hanya bisa memasukkannya ke dalam worksheet_change dan membiarkannya melakukan autofit semua yang terjadi, tetapi itu lemah. Kami membutuhkan metode intersect.Jika Anda tidak ingin autofit seluruh sheet gunakan ini dalam modul kode Lembar Kerja:
sumber