Trợ giúp Excel VBA - các cột khác nhau

Trợ giúp Excel VBA - các cột khác nhau

Xin chào,

Tôi có một SSIS ETL tải các tệp excel vào cơ sở dữ liệu. Thật không may, tệp excel dường như có hai định dạng khác nhau tùy thuộc vào người gửi. Điều này đang phá vỡ ánh xạ ETL.

Ai đó có thể giúp tôi tạo một macro vba sẽ chuyển đổi một định dạng này sang định dạng khác không?

Một cách hợp lý:

1. Đổi tên trang tính thành Trang tính1

2. Nếu bảng tính có văn bản cụ thể trong phạm vi A1: BB1 (Tôi sẽ xác định văn bản cho từng ô)

Sau đó xóa nội dung trong hàng1 và thay thế văn bản trong phạm vi A1: AM1 (Tôi sẽ xác định văn bản cho từng ô). Ô AN: BB không cần thiết.

Mọi sự trợ giúp sẽ rất được trân trọng.

Cảm ơn,

Tim




Câu trả lời:

Nếu phương sai duy nhất là các giá trị khác nhau trong hàng 1, thì bạn chỉ cần có một trang tính trong thư viện macro của mình với các giá trị tiêu đề chính xác và sử dụng mã như thế này trên tất cả các sổ làm việc đang được xử lý:

ActiveWorkbook.Worksheets (1) .Range ("A1: AM1"). Giá trị = ThisWorkbook.Worksheets ("Tiêu đề"). Phạm vi ("A1: AM1"). Giá trị

Nếu các tiêu đề tốt, không có hại; nếu chúng xấu, thì chúng được sửa.



Câu trả lời:

Cảm ơn Bernie.

Điều này sẽ hoạt động nhưng tôi lo ngại rằng tôi có thể nhận được một định dạng tệp hoàn toàn khác. Trong trường hợp này, các ánh xạ ETL của tôi sẽ vẫn chạy và đẩy dữ liệu vào cơ sở dữ liệu không đồng bộ.

ETL sẽ gửi tệp đến thư mục Bị từ chối nếu ánh xạ không hoạt động. Tôi thực sự chỉ đang cố gắng đẩy mạnh việc định dạng lại cho hai tình huống chính xác.

Rất tiếc, tệp đến từ bên thứ ba mà tôi không thể kiểm soát.



Câu trả lời:

Sự khác biệt trong các tệp là gì? Điều duy nhất bạn nói là

"Sau đó, xóa nội dung trong hàng 1 và thay thế văn bản trong dải ô A1: AM1"



Câu trả lời:

Họ thêm các cột bổ sung từ AN: BB trống và không cần thiết.

Các cột khác chỉ được đặt tên khác nhau nhưng chúng giống nhau.



Câu trả lời:

Sau đó, chỉ cần xóa các cột không cần thiết và sửa các tiêu đề:

ActiveWorkbook.Worksheets (1) .Range ("AN: BB"). EntireColumn.Delete

ActiveWorkbook.Worksheets (1) .Range ("A1: AM1"). Giá trị = ThisWorkbook.Worksheets ("Tiêu đề"). Phạm vi ("A1: AM1"). Giá trị

>


Câu trả lời:
Nếu ai đó chèn một cột mới vào bảng tính hơn tiêu đề sẽ không khớp với dữ liệu đúng cách .. thì tôi sẽ chèn nó vào cơ sở dữ liệu với tiêu đề và cột không khớp

Câu trả lời:

.... và nếu, và nếu, và nếu ...

Bạn có tất cả các loại tùy chọn, nhưng người dùng của bạn không nên chèn các cột mới vào tập dữ liệu của bạn. Bạn có thể kiểm tra xem các tiêu đề có khớp không, chúng có theo đúng thứ tự không, không có cột dữ liệu bổ sung nào, nhưng cuối cùng bạn nên nhấn mạnh vào định dạng dữ liệu cho các tệp mà bạn đang nhận và từ chối bất kỳ dữ liệu xấu nào quay lại nguồn. điều chỉnh. Tôi có thể nghĩ đến tất cả các loại vấn đề với tập dữ liệu, và bạn không thể lường trước được tất cả. Bạn sẽ cần phát triển các kỹ năng lập trình để kiểm tra các vấn đề và sửa chúng.



Câu trả lời:
Xin chào, tôi là Jonathan, Cố vấn độc lập ở đây để làm việc với bạn về vấn đề này.

Tuyên bố thứ hai không rõ ràng. Bạn có thể giải thích thêm hoặc cung cấp cho chúng tôi một số ảnh chụp màn hình của macro trước và sau mà bạn muốn không?

Cảm ơn

Jonathan

Câu trả lời:

Gửi Twice2x2

Thứ lỗi cho sự thẳng thắn của tôi,

nhưng chuỗi này sẽ không tìm thấy giải pháp phù hợp nếu không có bản sao của sổ làm việc có chứa mẫu (định dạng) chính xác và một số mẫu của định dạng tệp người gửi hỗn hợp

Xin vui lòng, tôi vui lòng yêu cầu bạn chuẩn bị một tệp với tất cả thông tin đó và chia sẻ liên kết ở đây để chúng tôi hiểu rõ hơn về kịch bản bạn đang mô tả.

Chúng tôi sẵn lòng giúp bạn với vấn đề của bạn.

Trân trọng

Jeovany

Comments

Popular posts from this blog

Macro Đã bật Excel bị hỏng khi sử dụng Excel> Chia sẻ> Email> Gửi dưới dạng tệp đính kèm

Microsoft excel - Tạo công thức trong đó dữ liệu từ các tab / Bảng tính khác nhau có thể được đồng bộ hóa dựa trên một ô trên bảng tính

Làm mới danh sách SharePoint đã xuất không thành công trong Excel 2013 khi hoạt động với Excel 2010