Memilih semua data di kolom Excel tanpa memandang ukuran

0

Saya memiliki proses berulang yang harus saya lakukan di Excel untuk mengumpulkan data uji. Saya harus melakukan proses ini untuk setiap titik data yang saya kumpulkan. Saya mengumpulkan lebih dari 200 poin data setiap tes.

Data saya terisi secara otomatis ke dalam Kolom A dan B. Saya harus dapat memilih semua data nyata di kolom A, kalikan dengan konstanta dan tempatkan di kolom terpisah. Masalahnya adalah bahwa data saya di kolom A bervariasi dalam jumlah sel untuk setiap titik data. Misalnya, satu set data uji akan memiliki 800 baris, maka berikutnya akan memiliki 3200. Itu selalu independen dan saya harus dapat memilih seluruh baris terlepas dari jumlah baris.

Saya harus bisa membuat ini Makro sehingga saya bisa melakukan semua manipulasi data lainnya yang diperlukan sekaligus. Masalahnya terletak ketika saya membuat makro ... Saya menggunakan jalan pintas untuk memilih semua data dan Makro melihat langkah ini sebagai memilih sel yang ditentukan. Jadi ketika saya merekam Makro untuk titik data panjang sel 3.200 dan kemudian mencoba menjalankannya pada titik data sel 800, ia memilih 3200 sel. Saya perlu hanya memilih data nyata.

Rudy
sumber
Sudahkah Anda mencoba meletakkan formula untuk satu baris saja, dan klik dua kali tombol pengisian otomatis di kanan bawah? (Saya pikir Anda tidak perlu makro untuk melakukan ini ...). Namun jika Anda ingin menggunakan VBA, Anda dapat mengulang-ulang data hingga menemukan sel kosong pertama.
Terobosan
@Breakthrough, saya berpikir tentang perulangan juga dan baru tahu, bahwa Anda dapat mengabaikan satu sel kosong (jika ada sel kosong) dengan ActiveSheet.UsedRange.Rows.Count Tapi itu tergantung pada titik mana Anda ingin berhenti menghitung.
Milde

Jawaban:

0

Kedengarannya Anda mencoba merangkum sejumlah variabel kolom berdasarkan bidang. Coba fitur Subtotal dan lihat apakah itu cocok untuk Anda. (lihat contoh)

Jika tidak, Anda mungkin beruntung menggunakan fungsi Cari & Referensi untuk mendapatkan referensi ke tempat bidang A berubah dari 1 menjadi 2, maka saya akan mencoba untuk menghasilkan jumlah () dengan array menggunakan referensi sebagai input. Maaf saya tidak bisa lebih detail, tetapi saya belum pernah mencobanya sebelumnya.

   A    B
  --------
+ 1    1.5
| 1    1.6
| 1    1.7
| 1    1.8
+ 1    1.9
1 Total  7
+ 2    1.5
| 2    1.6
| 2    1.7
| 2    1.8
+ 2    1.9
2 Total 7
Chris Nava
sumber
0

Inilah solusi makro.

Saya berasumsi data Anda ada di kolom A dengan tajuk di sel A1, dan Anda memiliki tajuk kolom di kolom B, sel B1. Rekatkan 2 blok kode ini ke dalam modul dan lihat apakah itu cocok untuk Anda. Makro untuk dijalankan adalah MultiplyAllData ().

Blok pertama ini adalah fungsi untuk mendapatkan baris terakhir di kolom A

Function MyLastRow() As Long
    'This will give the last row in column A
    Dim theLastRow As Long

    Range("A1").Select
    Selection.End(xlDown).Select
    theLastRow = Selection.Row

     MyLastRow = theLastRow
End Function

Blok berikutnya adalah makro untuk dijalankan. Ini mengalikan setiap nilai dalam kolom A dengan konstanta (yang dapat Anda edit), dan menempatkan hasilnya di kolom B:

Sub MultiplyAllData()

     Dim ourLastRow As Long
     Dim myConstant As Double

     myConstant = 3.14           'you can edit your constant here

     ourLastRow = MyLastRow      'this is a call to our function

Range("B2").Select
'   NOTE:  below is the code I got when I first recorded my macro.      
'          I had test data down to cell A40.
'    ActiveCell.FormulaR1C1 = "=RC[-1]*3.14"
'    Selection.AutoFill Destination:=Range("B2:B40")
'    Range("B2:B40").Select
'
'   Here is the modified code from the macro, with more flexibility now
'   because of the variables.
ActiveCell.FormulaR1C1 = "=RC[-1]*" & myConstant
Selection.AutoFill Destination:=Range("B2:B" & ourLastRow)
Range("B2:B" & ourLastRow).Select

Range("B1").Select  'park the cursor
End Sub
F106dart
sumber
0

Rudy:

Saya akan menggunakan sesuatu seperti ini:

Range(Cells(1,ActiveCell.Column),Cells(WorksheetFunction.CountA(Columns(ActiveCell.Column)),ActiveCell.Column)).Select

Ini akan memilih jumlah baris yang berisi data mulai dari baris # 1 dalam kolom aktif.

kr1stof
sumber