Saya cukup baru di VBA dan saya mengalami masalah men-debug kode tertentu. Yang saya inginkan adalah rumus sel yang memiliki tautan rumus ke spreadsheet lain. Namun, saya ingin menambahkan sel dari beberapa buku kerja. Misalnya, jika kita memiliki workbook1 dan workbook 2. Saya ingin di sel F10 di workbook akhir memiliki rumus yang membaca '[workbook1]Sheet1'!!F10' + '[workbook2]Sheet1'!!F10'

Saya suka membuat formula fleksibel dan memiliki kondisi berikut:

  1. Saya suka memiliki direktori terbuka yang memungkinkan saya memilih file excel yang saya inginkan sebagai bagian dari rumus
  2. Saya dapat menambahkan spreadsheet eksternal sebanyak mungkin
  3. Spreadsheet akhir awalnya akan memiliki nol di dalamnya. Saya ingin mengganti ini dengan tautan formula.

Bagaimana saya memutuskan untuk membuat kode ini adalah dengan terlebih dahulu mengganti sel nol dari buku kerja terakhir dengan sel F10 dari file excel pertama yang dipilih dari direktori. Setelah langkah ini selesai, setiap buku kerja tambahan yang dipilih dari direktori akan ditambahkan sebagai tautan formula tambahan ke sel. Di bawah ini adalah kode yang saya coba tetapi saya tidak tahu mengapa itu tidak berhasil. Adakah yang bisa tolong beri tahu saya apa yang salah? Terima kasih.

Sub Sum_workbooks_Form()
    Dim FileNameXls, f
    Dim wb As Workbook, i As Integer

    FileNameXls = Application.GetOpenFilename(filefilter:="Excel Files, *.xl*", MultiSelect:=True)

    If Not IsArray(FileNameXls) Then Exit Sub

    
    
    For Each f In FileNameXls
        
       
        
        Set wb = Workbooks.Open(f)
            
           
               If ThisWorkbook.Sheets("Sheet1").Cells(11, 6).Value = 0 Then
                    ThisWorkbook.Sheets("Sheet1").Cells(11, 6).Formula = "=[" & wb.Name & "]Sheet1!" & Cell(11, 6).Name
                Else
                    ThisWorkbook.Sheets("Sheet1").Cells(11, 6).Formula = "=[" & ThisWorkbook.Name & "]Sheet1!" & Cell(11, 6).Name & " + [" & wb.Name & "]Sheet1!" & Cell(11, 6).Name
                End If
          

            
            
        wb.Close SaveChanges:=False
    Next f

   
End Sub
0
VBA_Newbie 6 Juli 2020, 05:19

1 menjawab

Jawaban Terbaik

Nah, biasanya referensi ke sel F10 dari Sheet1 dari Book2 dinyatakan seperti ini dalam rumus:

=[Book2]Sheet1!$F$10

Apakah mungkin bagi Anda untuk merujuk NAMA Lembar alih-alih NOMOR? Jika ya, tugas pertama Anda akan terlihat seperti ini:

ThisWorkbook.Sheets(9).Cells(11, 6).Formula = "=[" & wb.Name & "]Sheet1!$F$10"

Di mana Sheet1 tentu saja adalah nama Spreadsheet Anda(9)

0
Corrado Barbero 6 Juli 2020, 03:08