Cara Membuat Jadwal Proyek dengan "Click-and-Drag" di Excel

Bagikan sekarang:

Artikel berikut menunjukkan cara menandai dan menginterogasi kalender dengan mouse Tandai Dan Interogasi Kalender Dengan Mouse

* Di dunia nyata, kami akan membuka formulir untuk membaca dan menulis entri buku harian yang berarti ke database. Latihan ini hanya mengungkapkan mekanisme mengklik kanan, dan menemukan detailnya dari lembar kerja itu sendiri.

Sebelum kita mulai, beberapa kata penjelasan tentang spreadsheet, model kerja yang dapat ditemukan di sini.Beberapa Kata Penjelasan Tentang Spreadsheet

Proses

Mengklik sel di dalam kisi akan menyorot sel itu dan mengubah nilainya. Klik-dan-seret akan menyorot rentang dan mengubah nilainya. Jika sebuah sel diisi, itu akan dihapus, jika tidak maka akan diisi, dalam hal ini dengan "*".

Sebaliknya, right_click adalah permintaan informasi dari sel yang dipilih.

Pada dasarnya ada dua peristiwa yang digunakan, bersama dengan beberapa modul.

  • Lembar Kerja_SeleksiUbah yang disebut ketika sel atau sel dipilih.
  • Lembar Kerja_SebelumKlik Kanan yang disebut dengan tombol mouse sebelah kanan.

Masalah

Mengklik kanan sel juga merupakan pilihan, memicu PilihanUbah. Kita harus membiarkan acara itu berjalan dengan sendirinya, membersihkan sel yang dipilih sebelum menyerahkan kendali ke SebelumKlik Kanank, ketika kita akan mengisi kembali sel yang telah dibersihkan. Tetapi tindakan ini akan memicu Pilihan Diubah acara lagi, yang harus dihentikan dari membersihkannya sekali lagi.

Ini akan kita lakukan dengan flag boolean yang disebut blnLoading.

Acara

Masukkan yang berikut ini di jendela kode di belakang lembar kerja (yaitu tidak dalam modul).

Option Explicit

    Dim blnLoading As Boolean
    Dim sPhase As String
    Dim currCellValue As String
    Dim dDate As Date

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     If ActiveCell.Row > 14 And ActiveCell.Row < 25 Then
         If ActiveCell.Column > 4 And ActiveCell.Column < 47 Then 'selection is valid
 
             On Error Resume Next
             currCellValue = Target.Value 'get the target value from (ByVal Target As Range)
 
             If blnLoading = True Then 'a value of True will force an exit from this event
                 blnLoading = False
                 Exit Sub
             End If
 
             sPhase = Cells(ActiveCell.Row, 1)
             If sPhase = "" Then Exit Sub
 
             If ActiveCell = "*" Then 'if the cell is populated, clear the selected range
                 Call ClearRange
                 Call UnblockCalendar
             Else
                 Call PopulateRange
             End If
 
             Call RedrawCells
             Range("A1").Select 'revive the SelectionChange event by changing selection.
             Exit Sub
         End If
     End If
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
     If currCellValue = "*" Then   'picked up by the previous event BEFORE it cleared it;
                                     'This means this is a valid diary entry with detail.
        blnLoading = True    'this will prevent the SelectionChange event (above) from running.
        Target.Select
        'currCell = Target.Address
        'Range(currCell).Select

            Target.Value = "*" 're-instate the value of the cell, since SelectionChange has cleared it
            Call PopulateRange
            dDate = Cells(13, ActiveCell.Column)
            sPhase = Cells(ActiveCell.Row, 1)
            MsgBox dDate & " - " & sPhase
        Cancel = True 'suppress Excel’s standard right_click menus
    End If
    Range("A1").Select
        blnLoading = False
End Sub

Ini menangani dua Peristiwa.

Kode yang Dirujuk

Tambahkan baris berikut, mengisi dan mendepopulasi rentang, ke kode:

Sub ClearRange()
     Selection.FormulaR1C1 = ""
     With Selection.Interior
         .Pattern = xlNone
         .TintAndShade = 0
         .PatternTintAndShade = 0
     End With
End Sub

Sub PopulateRange()
     Selection.FormulaR1C1 = "*"
     With Selection.Interior
         .Pattern = xlSolid
         .PatternColorIndex = xlAutomatic
         .ThemeColor = xlThemeColorLight2
         .TintAndShade = 0.799981688894314
         .PatternTintAndShade = 0
     End With
End Sub

Pemeliharaan Garis Kisi

Masukkan modul ke dalam aplikasi. Tambahkan kode berikut untuk mempertahankan tampilan kisi. Ini disalin dari perekam makro, redundansi dan semua.

Option Explicit

Sub UnblockCalendar()
     Selection.FormulaR1C1 = ""
     With Selection
         Selection.Borders(xlDiagonalDown).LineStyle = xlNone
         Selection.Borders(xlDiagonalUp).LineStyle = xlNone
         Selection.Borders(xlEdgeLeft).LineStyle = xlNone
         Selection.Borders(xlEdgeTop).LineStyle = xlNone
         Selection.Borders(xlEdgeBottom).LineStyle = xlNone
         Selection.Borders(xlEdgeRight).LineStyle = xlNone
         Selection.Borders(xlInsideVertical).LineStyle = xlNone
         Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
     End With
End Sub

Sub RedrawCells()
     Selection.Borders(xlDiagonalDown).LineStyle = xlNone
     Selection.Borders(xlDiagonalUp).LineStyle = xlNone
     With Selection.Borders(xlEdgeLeft)
         .LineStyle = xlContinuous
         .ColorIndex = 0
         .TintAndShade = 0
         .Weight = xlThin
     End With
     With Selection.Borders(xlEdgeTop)
         .LineStyle = xlContinuous
         .ColorIndex = 0
         .TintAndShade = 0
         .Weight = xlThin
     End With
     With Selection.Borders(xlEdgeBottom)
         .LineStyle = xlContinuous
         .ColorIndex = 0
         .TintAndShade = 0
         .Weight = xlThin
     End With
     With Selection.Borders(xlEdgeRight)
         .LineStyle = xlContinuous
         .ColorIndex = 0
         .TintAndShade = 0
         .Weight = xlThin
     End With
     With Selection.Borders(xlInsideVertical)
         .LineStyle = xlContinuous
         .ColorIndex = 0
         .TintAndShade = 0
         .Weight = xlThin
     End With
     With Selection.Borders(xlInsideHorizontal)
         .LineStyle = xlContinuous
         .ColorIndex = 0
         .TintAndShade = 0
         .Weight = xlThin
     End With
End Sub

Melindungi dari bencana

Siapapun yang melakukan banyak pengembangan Excel akan tahu bahwa xlsm spreadsheet yang kompleks dapat macet dari waktu ke waktu, merusak dokumen yang dibuka. Dalam lebih banyak kasus daripada yang diharapkan, buku kerja yang rusak tidak dapat dipulihkan oleh rutinitas pemulihan Excel. Jika tidak ada backup, pekerjaan yang dilakukan adalah lost. Ini dapat dicegah dengan alat yang dirancang untuk bekerja Perbaikan Excel.

Pengantar Penulis:

Felix Hooker adalah pakar pemulihan data di DataNumen, Inc., yang merupakan pemimpin dunia dalam teknologi pemulihan data, termasuk rar memperbaiki dan produk perangkat lunak pemulihan sql. Untuk informasi lebih lanjut kunjungi www.datanumen.com

Bagikan sekarang:

Komentar ditutup.