Chuyển dữ liệu word forms sang excel?? (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

vkingpro

Thành viên mới
Tham gia
26/3/13
Bài viết
12
Được thích
1
Chào các anh chị,

Đơn vị em có một số hoạt động khảo sát, và gửi phiếu cho đối tượng khảo sát phiếu khảo sát là file word dạng filling in form.

Bình thường khi nhận về, em sẽ phải in phiếu ra rồi nhập liệu rất mất thời gian với các phiếu dài tầm 15-20 trang (số lượng phản hồi có khi lên tới 1000)

Em xin hỏi có cách nào để đổ dữ liệu tự động từ word (dạng filling in form) sang excel ko ạ?

File word em có đính lên đây pass protection là "5"

Em ko biết về ngôn ngữ lập trình VBA nên các bác có cách nào đơn giản thì hướng dẫn em nhé.

Thanks cả nhà -=.,,
 

File đính kèm

Bài toán của bạn có thể dùng Google Form.

Thân.
 
Lần chỉnh sửa cuối:
Google form thì chỉ dùng cho các mẫu điền, bảng hỏi đơn giản khoảng 1 tới 2 trang thôi ạ (em cũng dùng để đăng ký hội thảo online), còn bảng hỏi của em thường từ 10-20 trang và trong bảng hỏi có sử dụng các bảng nữa, phiếu hỏi dùng đầy đủ cả checkbox, drop-down form field, option button nữa nên ko tiện làm trên google form, đối tượng khảo sát cũng thích nhận "văn bản" hơn là nhận 1 link +-+-+-+
 
Chào các anh chị,

Đơn vị em có một số hoạt động khảo sát, và gửi phiếu cho đối tượng khảo sát phiếu khảo sát là file word dạng filling in form.

Bình thường khi nhận về, em sẽ phải in phiếu ra rồi nhập liệu rất mất thời gian với các phiếu dài tầm 15-20 trang (số lượng phản hồi có khi lên tới 1000)

Em xin hỏi có cách nào để đổ dữ liệu tự động từ word (dạng filling in form) sang excel ko ạ?

File word em có đính lên đây pass protection là "5"

Em ko biết về ngôn ngữ lập trình VBA nên các bác có cách nào đơn giản thì hướng dẫn em nhé.

Thanks cả nhà -=.,,

Thao tác:
1. Đặt DOC và XLSX trong cùng thư mục
2. Mở DOC --> Alt + F11 để vào VBE --> chạy (Run hoặc F5) sub hichic
3. Kiểm tra kết quả trong xlsx
 

File đính kèm

Thao tác:
1. Đặt DOC và XLSX trong cùng thư mục
2. Mở DOC --> Alt + F11 để vào VBE --> chạy (Run hoặc F5) sub hichic
3. Kiểm tra kết quả trong xlsx


Hay quá anh Siwtom! cảm ơn anh rất nhiều nhé!
File em gửi em mới chỉ sử dụng checkbox, liệu có áp dụng được với drop-down form field, option button ko ạ :D
Nếu có nhiều file em đưa vào cùng thư mục thì có cách nào để đưa luôn một lượt vào file excel ko ạ, hay là mình làm lần lượt từng file rồi copy ra
-\\/.

Dù sao thì cảm ơn anh nhiều lắm @$@!^%
đi mua ngay cuốn VBA về học thôi &&&%$R
 
Em up lại file có drop-down form field ở trường "tháng" và option button ở câu 6 phần Thông tin chung và câu 4 ở phần Tổng quan doanh nghiệp cho anh tiện xem, anh xem qua giúp em xem có đổ được như checkbox ko ạ --=0

Cảm ơn anh :Minkoff:
 

File đính kèm

Em up lại file có drop-down form field ở trường "tháng" và option button ở câu 6 phần Thông tin chung và câu 4 ở phần Tổng quan doanh nghiệp cho anh tiện xem, anh xem qua giúp em xem có đổ được như checkbox ko ạ

Các optionbutton không phải là FormField
 
Tks anh Siwtom nhiều nhé! ^^ code rất tuyệt

Tôi chỉ nói là OptionButton không là FormField mà thôi.
Nếu bạn có OptionButton và cả các control khác thì cũng có thể tìm ra nhưng lúc đó không dùng tập FormFields được nữa mà phải dùng tập rộng hơn. Nhưng bạn phải cho biết bạn cần liệt kê những loại control nào.
Tôi cho ví dụ. Hiện bạn có trong document: Text, Checkbox, Dropdown, và optionbutton. Rất có thể trong tương lai tập tin có cả vd. Label nhưng bạn chỉ muốn liệt kê Text, Checkbox, Dropdown, và optionbutton còn Label dùng cho mục đích khác. Như thế để biết bạn cần tìm và liệt kê những loại nào, còn các loại khác thì bỏ qua.
Nếu bạn muốn thì bạn hãy soạn tập tin có tất cả những loại mà bạn sẽ cần liệt kê. Và cả những loại không cần liệt kê. Nhưng bạn cho biết bạn cần liệt kê những loại nào - các loại khác nếu có sẽ bỏ qua. Lúc đó ta sẽ cùng nhau "vọc"
 
Tôi chỉ nói là OptionButton không là FormField mà thôi.
Nếu bạn có OptionButton và cả các control khác thì cũng có thể tìm ra nhưng lúc đó không dùng tập FormFields được nữa mà phải dùng tập rộng hơn. Nhưng bạn phải cho biết bạn cần liệt kê những loại control nào.
Tôi cho ví dụ. Hiện bạn có trong document: Text, Checkbox, Dropdown, và optionbutton. Rất có thể trong tương lai tập tin có cả vd. Label nhưng bạn chỉ muốn liệt kê Text, Checkbox, Dropdown, và optionbutton còn Label dùng cho mục đích khác. Như thế để biết bạn cần tìm và liệt kê những loại nào, còn các loại khác thì bỏ qua.
Nếu bạn muốn thì bạn hãy soạn tập tin có tất cả những loại mà bạn sẽ cần liệt kê. Và cả những loại không cần liệt kê. Nhưng bạn cho biết bạn cần liệt kê những loại nào - các loại khác nếu có sẽ bỏ qua. Lúc đó ta sẽ cùng nhau "vọc"

Như thế là vẫn còn cách hả anh &&&%$R&&&%$R&&&%$R&&&%$R

Trong bộ phiếu của em chỉ có 1 optionbutton đó thôi (activeX control) dùng cho các câu hỏi chỉ được chọn 1 đáp án! ko có optionbutton nào khác.
Như vậy bộ phiếu bao gồm Text (cho các câu hỏi mở), checkbox (cho các câu hỏi được chọn nhều đáp án), dropdown (cho các câu hỏi chọn trong list) và optionbutton (chọn một đáp án duy nhất).
Tập tin thì anh xem giúp em trong file 1088_v1 hôm trước ạ:search:
Cảm ơn anh trước --=0
 
Như thế là vẫn còn cách hả anh &&&%$R&&&%$R&&&%$R&&&%$R

Trong bộ phiếu của em chỉ có 1 optionbutton đó thôi (activeX control) dùng cho các câu hỏi chỉ được chọn 1 đáp án! ko có optionbutton nào khác.
Như vậy bộ phiếu bao gồm Text (cho các câu hỏi mở), checkbox (cho các câu hỏi được chọn nhều đáp án), dropdown (cho các câu hỏi chọn trong list) và optionbutton (chọn một đáp án duy nhất).
Tập tin thì anh xem giúp em trong file 1088_v1 hôm trước ạ:search:
Cảm ơn anh trước --=0

Sau khi suy nghĩ thì tôi cũng thấy là với loại bài của bạn thì chỉ còn thêm OptionButton nữa thôi
------------
Chú ý:

Tôi không duyệt tập FormFields nữa mà duyệt tập Fields. Không biết có cách nào khác truy cập tới text sau mỗi CheckBox không, tôi không nghiên cứu kỹ. Cách tôi dùng đòi hỏi bạn thao tác hơi khác.

Hiện thời với n CheckBox thì bạn tạo Table có 1 cột và n dòng. Ở mỗi dòng là 1 checkbox và sau nó bạn nhập text ứng với checkbox đó.

Tôi đề nghị: Tạo Table cũng có n dòng nhưng với 2 cột. Ở mỗi dòng thì ở cột 1 là checkbox còn ở cột 2 là text ứng với checkbox đó.

Trong tập tin đính kèm tôi đã sửa lại Table cho checkbox thành có 2 cột.

Tất nhiên code bắn dữ liệu vào Excel vào dòng 2. Tại dòng 1 bạn tự tạo tiêu đề.
-------
Bây giờ bạn không chạy sub hichic nữa mà chạy sub bla
 

File đính kèm

Sau khi suy nghĩ thì tôi cũng thấy là với loại bài của bạn thì chỉ còn thêm OptionButton nữa thôi
------------
Chú ý:

Tôi không duyệt tập FormFields nữa mà duyệt tập Fields. Không biết có cách nào khác truy cập tới text sau mỗi CheckBox không, tôi không nghiên cứu kỹ. Cách tôi dùng đòi hỏi bạn thao tác hơi khác.

Hiện thời với n CheckBox thì bạn tạo Table có 1 cột và n dòng. Ở mỗi dòng là 1 checkbox và sau nó bạn nhập text ứng với checkbox đó.

Tôi đề nghị: Tạo Table cũng có n dòng nhưng với 2 cột. Ở mỗi dòng thì ở cột 1 là checkbox còn ở cột 2 là text ứng với checkbox đó.

Trong tập tin đính kèm tôi đã sửa lại Table cho checkbox thành có 2 cột.

Tất nhiên code bắn dữ liệu vào Excel vào dòng 2. Tại dòng 1 bạn tự tạo tiêu đề.
-------
Bây giờ bạn không chạy sub hichic nữa mà chạy sub bla

Em ko cần text của checkbox đâu anh Siwtom ạ, em chỉ cần biết là chọn hay ko chọn lựa chọn đó thôi :), vì em có 1 file codebook để xác định nội dung biến rồi ạ và dù sao khi ra file excel em sẽ phải quy chuyển các lựa chọn về 1 dạng (ví dụ replace "chọn" thành "1", "không chọn" thành "0", không trả lời là "-9") sau đó chuyển vào Stata để phân tích. Nên có thể vẫn để 1 cộtn dòng như sub hichic được ko ạ :):hammer:
Hiện tại thì optionbutton đã đổ đc sang excel rồi, nhưng liệu có dồn vào 1 cột được ko ạ, ví dụ như câu hội viên thì khi vào excel thì nó chỉ là một cột với các nội dung hiển thị là "có", "không", "blank" hoặc "1", "0" "blank" ko ạ.:cc_confused::cc_confused:

Cảm ơn bác đã thức đêm viết sub cho em ^^^^
 
Em ko cần text của checkbox đâu anh Siwtom ạ, em chỉ cần biết là chọn hay ko chọn lựa chọn đó thôi :), vì em có 1 file codebook để xác định nội dung biến rồi ạ và dù sao khi ra file excel em sẽ phải quy chuyển các lựa chọn về 1 dạng (ví dụ replace "chọn" thành "1", "không chọn" thành "0", không trả lời là "-9") sau đó chuyển vào Stata để phân tích. Nên có thể vẫn để 1 cộtn dòng như sub hichic được ko ạ :):hammer:
Hiện tại thì optionbutton đã đổ đc sang excel rồi, nhưng liệu có dồn vào 1 cột được ko ạ, ví dụ như câu hội viên thì khi vào excel thì nó chỉ là một cột với các nội dung hiển thị là "có", "không", "blank" hoặc "1", "0" "blank" ko ạ.:cc_confused::cc_confused:

Cảm ơn bác đã thức đêm viết sub cho em ^^^^

Nếu checkbox không cần text thì đơn giản rồi. Sẽ chỉ table 1 cột. Và tôi sẽ thay no check/check bằng 0/1, được không?

Còn về optionbutton dồn về 1 cột thì tôi chưa hiểu lắm. Có nghĩa là ta chỉ dành 1 cột cho mỗi cụm optionbutton và:

1. nếu không có gì được chọn thì để trống.
2. Nếu có 1 option được chọn thì ...

Theo tôi lúc đó phải ghi TEXT của option ĐƯỢC CHỌN. Tức TEXT lọc ra là TEXT của option ĐƯỢC CHỌN.

Nếu chỉ ghi 1 (được chọn) thì làm sao biết được 1 đó ứng với option nào?

Bạn xem tôi quyết định như thế này được không: TEXT nếu có thì là TEXT của option ĐƯỢC CHỌN

Riêng checkbox sẽ có n cột nếu có n checkbox? Và mỗi cột sẽ có 0 hoặc 1?

Bạn hãy nói rõ, sau công việc tôi sẽ sửa.
 
Nếu checkbox không cần text thì đơn giản rồi. Sẽ chỉ table 1 cột. Và tôi sẽ thay no check/check bằng 0/1, được không?

Còn về optionbutton dồn về 1 cột thì tôi chưa hiểu lắm. Có nghĩa là ta chỉ dành 1 cột cho mỗi cụm optionbutton và:

1. nếu không có gì được chọn thì để trống.
2. Nếu có 1 option được chọn thì ...

Theo tôi lúc đó phải ghi TEXT của option ĐƯỢC CHỌN. Tức TEXT lọc ra là TEXT của option ĐƯỢC CHỌN.

Nếu chỉ ghi 1 (được chọn) thì làm sao biết được 1 đó ứng với option nào?

Bạn xem tôi quyết định như thế này được không: TEXT nếu có thì là TEXT của option ĐƯỢC CHỌN

Riêng checkbox sẽ có n cột nếu có n checkbox? Và mỗi cột sẽ có 0 hoặc 1?

Bạn hãy nói rõ, sau công việc tôi sẽ sửa.
Ý em chính xác như anh nói rùi ạ, checkbox em chỉ cần 1/0 cho chọn/không chọn
còn optionbutton thì chỉ dành 1 cột cho mỗi cụm và:
1. nếu không có gì được chọn thì để trống.
2. Nếu có 1 option được chọn thì ghi Text của option Được Chọn ạ :Minkoff:
 
Ý em chính xác như anh nói rùi ạ, checkbox em chỉ cần 1/0 cho chọn/không chọn
còn optionbutton thì chỉ dành 1 cột cho mỗi cụm và:
1. nếu không có gì được chọn thì để trống.
2. Nếu có 1 option được chọn thì ghi Text của option Được Chọn ạ :Minkoff:

Bạn xem đúng ý chưa

Chạy sub bla
 

File đính kèm

Híc, em xin lỗi vì đào mộ (@$%@(@$%@(@$%@
Quá trình sử dụng em gặp một vấn đề ạ, là code đổ dữ liệu vào ô A2 trong excel. Do đó nếu có nhiều phiếu muốn đổ dữ liệu sang excel thì em sau khi đổ 1 phiếu sẽ phải vào excel insert 1 dòng trống vào dòng số 2 để đổ tiếp, như thế nếu có 10 phiếu cần đổ sẽ phải mở file ra insert và save 10 lần ạ, lỡ mà quên là sẽ ghi đè vào dữ liệu đã đổ ra trước.
Em mong anh Siwtom giúp em thêm chút nữa ạ, là thêm đoạn code để sau khi dữ liệu đổ vào A2 thì insert một dòng để đẩy dữ liệu xuống rồi mới save&quit. như vậy thì em sẽ không phải mở file excel ra và đỡ bị nhầm lẫn trong khi đổ dữ liệu ạ.
Mong anh Siwtom quan tâm giúp em-\\/., cảm ơn anh!
 
Lần chỉnh sửa cuối:
Híc, em xin lỗi vì đào mộ (@$%@(@$%@(@$%@
Quá trình sử dụng em gặp một vấn đề ạ, là code đổ dữ liệu vào ô A2 trong excel. Do đó nếu có nhiều phiếu muốn đổ dữ liệu sang excel thì em sau khi đổ 1 phiếu sẽ phải vào excel insert 1 dòng trống vào dòng số 2 để đổ tiếp, như thế nếu có 10 phiếu cần đổ sẽ phải mở file ra insert và save 10 lần ạ, lỡ mà quên là sẽ ghi đè vào dữ liệu đã đổ ra trước.
Em mong anh Siwtom giúp em thêm chút nữa ạ, là thêm đoạn code để sau khi dữ liệu đổ vào A2 thì insert một dòng để đẩy dữ liệu xuống rồi mới save&quit. như vậy thì em sẽ không phải mở file excel ra và đỡ bị nhầm lẫn trong khi đổ dữ liệu ạ.
Mong anh Siwtom quan tâm giúp em-\\/., cảm ơn anh!

Trong code của Sub bla (bài #17) ở gần cuối có
Mã:
    wb.worksheets("Sheet1").Range("A2").Resize(, UBound(Arr, 2)).Value = Arr
    wb.Save

Thêm 1 dòng (đỏ đỏ) vào giữa 2 dòng trên để thành
Mã:
    wb.worksheets("Sheet1").Range("A2").Resize(, UBound(Arr, 2)).Value = Arr
    [COLOR=#ff0000]wb.worksheets("Sheet1").Range("A2").EntireRow.Insert[/COLOR]
    wb.Save
 
Web KT

Bài viết mới nhất

Back
Top Bottom