Makale numarası: 272729 - Son Gözden Geçirme: 29 Ocak 2007 Pazartesi - Gözden geçirme: 5.2

256'Dan fazla alanları veya sütunları, verileri Excel'e almak için

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.
Hepsini aç | Hepsini kapa

Özet

Microsoft Excel elektronik tablolarını 256 sütun (sütun IV) vardır. Bu nedenle, Excel, çalışma sayfasındaki kayıt başına 256'dan fazla alanlarla veri kabul edemiyor. El ile kayıt başına 256'dan fazla alanları olan bir veritabanı veya metin dosyasından veri alma girişiminde bulunduğunuzda, ek alanları kayıtları kesiliyor.

Bir Visual Basic for Applications makrosu, birden fazla çalışma sayfası arasında verileri aktarmak için kullanabilirsiniz. Bu makalede, en çok 510 alanları virgülle ayrılmış değişken (CSV) biçimlendirilmiş veritabanıyla Excel'e aktarır bir makro örneği sağlanır. Makro çalışma kitabı ve çalışma kitabındaki ikinci sayfadaki geri kalan alanlar (257th alanla başlayan) bir sayfa alanları ilk 256 yerleştirir.

Daha fazla bilgi

Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; örtülü veya açık garanti vermez. Buna satılabilirlik veya belirli bir amaca uygunluk zımni garantileri de dahildir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama dilini ve yordamları oluşturmak ve hata ayıklamak amacıyla kullanılan araçları kullanmayı bildiğinizi varsayar. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir, ancak gereksinimlerinizi karşılamaya yönelik olarak ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler. Aşağıdaki makro kullanarak almadan önce veritabanınızın dışında CSV biçiminde değilse, veritabanı CSV biçiminde yeniden kaydedin.
  1. Başlatma veya Excel'e geçiş yapın.
  2. Araçlar menüsünden, makro ' nun üzerine gelin ve sonra Visual Basic Düzenleyicisi ' ni tıklatın.
  3. Ekle menüsünden modülü ' nü tıklatın.
  4. Bu modülde, aşağıdaki kodu yazın:
    Sub LargeDatabaseImport()
    
        'In the event of an error, make sure the application is reset to
        'normal.
        On Error GoTo ErrorCheck
    
        'Dimension Variables
        Dim ResultStr As String
        Dim FileName As String
        Dim FileNum As Integer
        Dim Counter As Double
        Dim CommaCount As Integer
        Dim WorkResult As String
    
        'Ask for the name of the file.
        FileName = InputBox("Please type the name of your text file, for example, test.txt")
    
        'Turn off ScreenUpdating and Events so that users can't see what is 
        'happening and can't affect the code while it is running.
        Application.ScreenUpdating = False
        Application.EnableEvents = False
    
        'Check for no entry.
        If FileName = "" Then End
        
        'Get next available file handle number.
        FileNum = FreeFile()
        
        'Open text file for input.
        Open FileName For Input As #FileNum
        
        'Turn ScreenUpdating off.
        Application.ScreenUpdating = False
    
        'Set the counter to 1.
        Counter = 1
    
        'Place the data in the first row of the column.
        Range("A1").Activate
    
        'Loop until the end of file is reached.
        Do While Seek(FileNum) <= LOF(FileNum)
    
            'Show row number being imported on status bar.
            Application.StatusBar = "Importing Row " & _
                    Counter & " of text file " & FileName
    
            'Store one line of text from file to variable.
            Line Input #FileNum, ResultStr
    
            'Initialize the CommaCount variable to zero.
            CommaCount = 0
            
            'Store the entire string into a second, temporary string.
            WorkResult = ResultStr
    
            'Parse through the first line of data and separate out records 
            '257 to 510.
            While CommaCount < 255
    
                WorkResult = Right(WorkResult, Len(WorkResult) - InStr(1, WorkResult, ","))
                CommaCount = CommaCount + 1
    
            Wend
    
            'Parse out any leading spaces.
            If Left(WorkResult, 1) = " " Then WorkResult = Right(WorkResult, Len(WorkResult) - 1)
    
            'Ensure that any records that contain an "=" sign are 
            'brought in as text, and set the value of the current
            'cell to the first 256 records.
            If Left(WorkResult, 1) = "=" Then
                ActiveCell.Value = "'" & Left(ResultStr, Len(ResultStr) - Len(WorkResult))
            Else
                ActiveCell.Value = Left(ResultStr, Len(ResultStr) - Len(WorkResult))
            End If
    
            'Ensure that any records that contain an "=" sign are 
            'brought in as text,and set the value of the next cell 
            'to the last 256 records.
            If Left(WorkResult, 1) = "=" Then
                ActiveCell.Offset(0, 1).Value = "'" & WorkResult
            Else
                ActiveCell.Offset(0, 1).Value = WorkResult
            End If
    
            'Move down one cell.
            ActiveCell.Offset(1, 0).Activate
    
            'Increment the Counter by 1.
            Counter = Counter + 1
    
            'Start again at top of 'Do While' statement.
        Loop
    
        'Close the open text file.
        Close
    
        'Take records 257-510 and move them to sheet two.
        Columns("B:B").Select
        Selection.Cut
        Sheets("Sheet2").Select
        Columns("A:A").Select
        ActiveSheet.Paste
    
        'Run the text-to-columns wizard on both sheets.
        Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
                TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
                Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
                :=Array(Array(1, 1), Array(2, 1), Array(3, 1))
        Sheets("Sheet1").Select
        Columns("A:A").Select
        Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
                TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
                Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
                :=Array(Array(1, 1), Array(2, 1), Array(3, 1))
    
        'Reset the application to its normal operating environment.
        Application.StatusBar = False
        Application.EnableEvents = True
        Application.ScreenUpdating = True
    
        Exit Sub
    
    ErrorCheck:
    
        'Reset the application to its normal operating environment.
        Application.StatusBar = False
        Application.EnableEvents = True
        Application.ScreenUpdating = True
        MsgBox "An error occured in the code."
    
    End Sub
    						
  5. Dosya menüsünde Kapat ve Microsoft Excel'e dön'ı tıklatın.
  6. Araçlar menüsünden, makro ' nun üzerine gelin ve makrolar ' ı tıklatın.
  7. Makro listede LargeDatabaseImport makroyu seçin. Çalıştır ' ı tıklatın.
  8. Görüntülenen iletişim kutusunda, almak istediğiniz <a1>CSV</a1> dosyasının yolunu ve dosya adını yazın.

Referanslar

Bu makaledeki kod örneğini kullanma hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
212536  (http://support.microsoft.com/kb/212536/EN-US/ ) OFF2000: Nasıl Knowledge Base makalelerini örnek kod Çalıştır
Visual Basic forApplications ilgili Yardım alma hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
226118  (http://support.microsoft.com/kb/226118/EN-US/ ) OFF2000: Kaynaklar Visual Basic for Applications programlama
Excel belirtim ve limiatons hakkında ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
264626  (http://support.microsoft.com/kb/264626/ ) Excel 2000 özellikleri'nin açıklaması

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
Anahtar Kelimeler: 
kbmt kbvba kbprogramming kbautomation kbmacro kbhowto KB272729 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:272729  (http://support.microsoft.com/kb/272729/en-us/ )