de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
 dojogeorge
dojogeorge
Question

Hapus konten sel dalam VBA menggunakan referensi kolom

Saya mencoba mendapatkan sepotong kode untuk menghapus data di beberapa sel, menggunakan referensi kolom. Saya menggunakan kode berikut:

Worksheets(sheetname).Range(.Cells(2, LastColData), .Cells(LastRowData, LastColData)).ClearContents

Untuk melakukan ini, namun saya mendapatkan kesalahan pada bagian .Cells pertama, mengapa demikian?

12 2013-10-25T15:29:18+00:00 3
Pemrograman
vba
excel
excel-vba
Pertanyaan ini memiliki :value jawaban dalam bahasa Inggris, untuk membacanya masuk ke akun Anda.
Solution / Answer
 Sam
Sam
25 Oktober 2013 в 3:38
2013-10-25T15:38:58+00:00
Lebih
Sumber
Sunting
#22621882

Anda bisa mengakses seluruh kolom sebagai range menggunakan objek Worksheet.Columns

Sesuatu seperti:

Worksheets(sheetname).Columns(1).ClearContents 

harus menghapus isi kolom A

Ada juga objek Worksheet.Rows jika Anda perlu melakukan sesuatu yang serupa untuk baris


Kesalahan yang Anda terima kemungkinan disebabkan oleh blok yang hilang.

Anda dapat membaca tentang blok with di sini: Bantuan Microsoft

 Sam
Sam
Jawaban edit 25 Oktober 2013 в 4:47
25
0
Instant Breakfast
Instant Breakfast
25 Oktober 2013 в 9:45
2013-10-25T21:45:52+00:00
Lebih
Sumber
Sunting
#22621883

Seperti yang disebutkan oleh Siswa Gary&#39, anda perlu menghapus titik sebelum Cells untuk membuat kode bekerja seperti yang anda tulis semula. Saya tidak bisa memastikan, karena anda hanya menyertakan satu baris kode, tetapi kesalahan yang anda dapatkan ketika anda menghapus titik-titik itu mungkin ada hubungannya dengan bagaimana anda mendefinisikan variabel anda.

Saya menjalankan baris kode Anda dengan variabel yang didefinisikan sebagai bilangan bulat dan berhasil:

Sub TestClearLastColumn()

    Dim LastColData As Long
        Set LastColData = Range("A1").End(xlToRight).Column

    Dim LastRowData As Long
        Set LastRowData = Range("A1").End(xlDown).Row

    Worksheets("Sheet1").Range(Cells(2, LastColData), Cells(LastRowData, LastColData)).ClearContents

End Sub

Saya tidak berpikir pernyataan With sesuai dengan baris kode yang Anda bagikan, tetapi jika Anda menggunakannya, With akan berada di awal baris yang mendefinisikan objek yang Anda manipulasi. Berikut ini adalah kode Anda yang ditulis ulang menggunakan pernyataan With yang tidak perlu:

With Worksheets("Sheet1").Range(Cells(2, LastColData), Cells(LastRowData, LastColData))
    .ClearContents
End With

Pernyataan With didesain untuk menyelamatkan Anda dari pengetikan ulang kode dan untuk membuat coding Anda lebih mudah dibaca. Ini menjadi berguna dan sesuai jika Anda melakukan lebih dari satu hal dengan sebuah objek. Sebagai contoh, jika anda ingin mengubah kolom menjadi merah dan menambahkan garis tepi hitam yang tebal, anda dapat menggunakan pernyataan With seperti ini:

With Worksheets("Sheet1").Range(Cells(2, LastColData), Cells(LastRowData, LastColData))
    .ClearContents
    .Interior.Color = vbRed
    .BorderAround Color:=vbBlack, Weight:=xlThick
End With

Jika tidak, Anda harus mendeklarasikan range untuk setiap aksi atau properti, seperti ini:

    Worksheets("Sheet1").Range(Cells(2, LastColData), Cells(LastRowData, LastColData)).ClearContents
    Worksheets("Sheet1").Range(Cells(2, LastColData), Cells(LastRowData, LastColData)).Interior.Color = vbRed
    Worksheets("Sheet1").Range(Cells(2, LastColData), Cells(LastRowData, LastColData)).BorderAround Color:=vbBlack, Weight:=xlThick

Saya harap ini memberi Anda gambaran mengapa Gary's Student percaya bahwa kompiler mungkin mengharapkan With (meskipun itu tidak pantas) dan bagaimana dan kapan With dapat berguna dalam kode Anda.

Instant Breakfast
Instant Breakfast
Jawaban edit 28 Oktober 2013 в 4:48
1
0
Gary's Student
Gary's Student
25 Oktober 2013 в 3:30
2013-10-25T15:30:32+00:00
Lebih
Sumber
Sunting
#22621881

Anda memerlukan pernyataan With sebelum ini. Atau buat .Cells menjadi Cells

0
0
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
UbiBot UK
Terdaftar 15 jam yang lalu
2
Галина Утяшова
Terdaftar 1 hari yang lalu
3
Asilbek Qadamboyev
Terdaftar 4 hari yang lalu
4
Akshit Mehta
Terdaftar 1 minggu yang lalu
5
me you
Terdaftar 1 minggu yang lalu
DE
ID
JA
RU
TR
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi