Làm cách nào tôi chỉ có thể viết một số hàng nhất định của bảng tính Excel vào CSV?


1

Tôi đã tạo một sổ làm việc Excel (2010) lấy thông tin từ các tệp CSV khác nhau và đặt chúng thành một định dạng có thể hiểu được bằng chương trình lập lịch trình của văn phòng tôi. Sử dụng macro tôi tìm thấy trực tuyến, tôi có thể lưu từng tờ của sổ làm việc dưới dạng tệp CSV riêng biệt, sẵn sàng để nhập.

Vấn đề là nhiều hàng của sổ làm việc là do thông tin cần thiết, vì mỗi hàng được dành cho một khối thời gian có thể hoặc không thể được lên lịch. Các hàng không đầy này làm cho chương trình lập lịch phát sinh lỗi. Đây không phải là một vấn đề nghiêm trọng, vì các mục lịch biểu "tốt" vẫn được nhập, nhưng điều đó có nghĩa là tôi phải lội qua hàng trăm lỗi dự kiến ​​để tìm lỗi thực tế .

Tôi đã tự hỏi liệu có cách nào để chỉ xuất một số hàng nhất định của trang tính sang CSV không - ví dụ: mọi hàng trong đó nội dung của cột A đều khác không.

Để tham khảo, đây là macro tôi hiện đang sử dụng để biến các bảng tính thành các tệp CSV riêng biệt.

Option Explicit
Public Sub WriteCSV()

    Dim iFile As Integer
    Dim strText As String, strFileName As String
    Dim lngCol As Long, lngRow As Long
    Dim wks As Worksheet

    iFile = FreeFile()

    For Each wks In ActiveWorkbook.Worksheets
        If wks.Visible = xlSheetVisible Then
            strFileName = ActiveWorkbook.Path & "\" & wks.Name & ".csv"
            Open strFileName For Output As #iFile
                For lngRow = 1 To wks.UsedRange.Rows.Count
                    For lngCol = 1 To wks.UsedRange.Columns.Count
                        Print #iFile, wks.Cells(lngRow, lngCol).Text & ",";
                    Next lngCol
                        Print #iFile,
                Next lngRow
            Close #iFile
        End If
    Next wks

End Sub

Cảm ơn!

Câu trả lời:


0

Sau đó For lngRow = 1 to wks.UsedRange.Rows.Count, thêm dòng này:

If Not IsNull(wks.Cells(l, 1).Value) And Trim(wks.Cells(l, 1).Value) <> "" Then

Lưu ý rằng có chữ thường "L", sau đó là số một trong ngoặc đơn. Sau đó, trước Next lngRow, đặt dòng này vào:

End If

Điều đó sẽ bỏ qua bất kỳ hàng nào có null (không có gì) hoặc trống (tức là chỉ các tab hoặc khoảng trắng) trong cột đầu tiên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.