Làm sao để tự động Enter sau mỗi ảnh trong WORD?

  • Thread starter garotivn
  • Ngày gửi
G

garotivn

Guest
Chào các bác, em có 1 vấn đề thắc mắc:
- em có 1 thư mục chứa 500 file ảnh mã vạch nho nhỏ (ảnh tạo từ web tạo mã )
- em chọn (bôi đen) 500 file từ cửa sổ thư mục đó và kéo thả vào file word trắng (Microsoft Word 2016)
- Kết quả là 500 cái mã vạch này nó dính liền vào nhau - như thể trên 1 dòng dài vô tận
(giống như copy paste liên tiếp 1 ảnh không ấn Enter thôi, nên các bác không cần thiết phải kiếm 500 file ảnh như của em để thử đâu)

Vậy em làm thế nào để TỰ ĐỘNG xuống dòng liền sau mỗi cái ảnh
???
Hiện em cứ phải dùng 2 ngón tay gõ luân phiên 2 phím: (mũi tên phải + phím Enter) 499 lần mới xong :D

Bác nào có cách thực hiện thành công thì làm ơn cho em biết, dùng VBA hay gì cũng được.
Em cảm ơn nhiều!

LINK FILE (down trực tiếp):

Mục đích của em là có thể copy paste 500 cái ảnh mã vạch vào 1 cột có 500 ô dọc của bảng trong WORD
Dưới đây là video sau khi làm theo cách không Enter (chỉ có hình thức là in mỗi mã vạch 1 dòng)
và sau đó là theo cách ấn nút Enter rồi copy paste vào bảng
Bạn cần đăng nhập để thấy đa phương tiện
 
Sửa lần cuối bởi điều hành viên:

tuhocvba

Administrator
Thành viên BQT
Bạn nén thử 50 cái ảnh, cho lên google drive rồi kéo link về đây để chúng tôi tái hiện lại vấn đề bạn đang gặp nhé.
 
G

garotivn

Guest
Bạn nén thử 50 cái ảnh, cho lên google drive rồi kéo link về đây để chúng tôi tái hiện lại vấn đề bạn đang gặp nhé.
Đây bác nhé (cả trên bài #1 đã sửa):
LINK FILE (down trực tiếp):
Đó là file ZIP - có file WORD 500 mã vạch liên tiếp (không có dấu enter) và 1 thư mục chứa 500 ảnh mã vạch
 
V

vothanhthu

Guest
Thứ bày bạn một cách nhé. Siêu đơn giản
Bạn cần đăng nhập để thấy hình ảnh
 
G

garotivn

Guest
Thứ bày bạn một cách nhé. Siêu đơn giản
Cảm ơn bạn, vấn đề là mình cần tách nó thành 500 dòng để sau đó còn copy paste 1 phát vào 500 ô dọc trong 1 bảng biểu của WORD.
Nếu làm như bạn thì sau khi copy paste thì mọi ảnh sẽ chui vào cùng 1 ô

File WORD thể hiện đại khái kết quả mong muốn - đã rút gọn

(đây chỉ là 1 bảng, nó kéo dài 50 trang, dòng đầu lặp lại ở mỗi trang)

Video sau khi làm theo cách của bạn và cách thủ công rồi copy paste vào bảng
Bạn cần đăng nhập để thấy đa phương tiện
 
Sửa lần cuối bởi điều hành viên:
V

vothanhthu

Guest
Làm nhanh giúp bạn đoạn Code này. Hơi củ chuối nhưng Thứ nghĩ sẽ sài được:
Mã:
Sub Enter_Dong()
    Dim i, MyValue As Long
    On Error GoTo Loi
    MyValue = InputBox("Nhap so anh ban can Enter vao day", "NHAP SO ANH", Default)
 
    Selection.GoTo What:=wdGoToHeading, Which:=wdGoToFirst
    For i = 1 To MyValue / 2
        Selection.MoveRight Unit:=wdCharacter, Count:=1
        Selection.TypeParagraph
        Selection.MoveRight Unit:=wdCharacter, Count:=1
        Selection.TypeParagraph
    Next i
    MsgBox "Da Enter xong"
Loi: Exit Sub
End Sub
Nhập số ảnh vào và nhấn OK nhé. Code sẽ Enter giùm bạn

Bạn cần đăng nhập để thấy hình ảnh
 
V

vothanhthu

Guest
Thứ đưa thêm Links file có code:
 

tuhocvba

Administrator
Thành viên BQT
Topic của bạn đã được hỗ trợ xong.
Có một vấn đề tôi không hiểu là tại sao phải làm trên word, mục đích là gì?
Quản lý trên Excel tiện hơn nhiều, việc code cũng thuận tiện hơn. (Link download ở cuối bài viết)
Bạn cần đăng nhập để thấy hình ảnh

Việc in ấn cũng không có vấn đề gì.

Ngoài ra, nếu bạn vẫn yêu thích word (không rõ lý do ? ), bạn có thể copy từ Excel (Ctr+C) vào word (Ctr+V), tuy nhiên với số lượng lớn 500 files ảnh thì sẽ có cảm giác treo máy một lát (1 phút 13s), nhưng vẫn trơn tru.
Bạn cần đăng nhập để thấy hình ảnh

Link download:
 
G

garotivn

Guest
Topic của bạn đã được hỗ trợ xong.
Có một vấn đề tôi không hiểu là tại sao phải làm trên word, mục đích là gì?
Quản lý trên Excel tiện hơn nhiều, việc code cũng thuận tiện hơn. (Link download ở cuối bài viết)

Việc in ấn cũng không có vấn đề gì.

Ngoài ra, nếu bạn vẫn yêu thích word (không rõ lý do ? ), bạn có thể copy từ Excel (Ctr+C) vào word (Ctr+V), tuy nhiên với số lượng lớn 500 files ảnh thì sẽ có cảm giác treo máy một lát (1 phút 13s), nhưng vẫn trơn tru.

Link download:
Cảm ơn bác,
Thực ra là em dùng Excel 90% rồi mới paste kết quả ra Word và chỉnh tiếp, lý do em kết thúc bằng Word thì có nhiều:

1 - Em dốt VBA, chưa biết gì lập trình VBA cả trên Word và Excel. Có thể với người đủ trình độ thì thấy Excel tuyệt vời hơn nhưng trường hợp này em chọn kết hợp cả Word và Excel:
Excel để sắp xếp thứ tự Serial tăng dần, dùng hàm excel để trích 4 số đuôi Serial, phát hiện trùng lặp Serial... (và nhiều thứ cực tiện khác). Nhưng khi có kết quả thì em sẽ paste từ Excel ra Word để tận dụng tiếp các tính năng của Word (Ví dụ: tìm và tô màu 871TVV - là đoạn đầu của mọi Serial bằng chữ màu đỏ). Em có thể làm đơn giản trong Word (Ctrl+H để tìm và chọn, sau đó edit 1 loạt mọi chỗ 877TVV) mà không cần dùng hàm hay VBA trong Excel.

2 - Và đặc biệt là nếu làm việc với bảng biểu có hình ảnh (như mã vạch) thì em dùng Excel cảm thấy không như ý, ví dụ:
- ảnh không được "neo chặt vào trong ô" như trong bảng Word mà vẫn cứ "nổi trên ô", lỡ tay kéo ảnh đi thì cũng ko biết xếp lại thế nào cho đúng và đẹp. Nếu in luôn thì OK, nhưng nếu gửi file cho 1 người khác nữa để bổ sung, chỉnh sửa tiếp thì có thể họ sẽ làm loạn hết
- nếu lỡ chỉnh độ rộng cột/dòng chứa ảnh hẹp đi (như file mã vạch của bác) thì ảnh cũng bị co theo và không đúng tỉ lệ ban đầu.
Việc copy paste ô Excel chứa ảnh sang ô khác hẹp hơn thì ảnh cũng bị tự động co theo.
Việc click đúp dòng để chỉnh độ rộng auto thì Excel co theo chữ chứ không theo ảnh và ảnh cũng bị co theo.
- Nếu nới rộng cột chứa ảnh mã vạch thì em không biết căn ảnh ra giữa ô Excel (hoặc căn phải/trái/trên/dưới) trong ô Excel (nhằm có thêm khoảng trống rộng 2 bên để quét mã vạch không bị nhầm. Hoặc chỉ vì thích bố trí vậy)

Và nhiều lý do khác nữa....
 
T

thanhphong

Guest
Những lý do này là không thuyết phục, nhưng tôi cũng không muốn sa đà để mất thêm thời gian không đáng.
 
B

bvtvba

Guest
Nên khiêm tốn thì người khác còn chỉ cho.
1. Nói Word không bị co giãn hay mất ràng buộc là không đúng.
2. Nói Excel không đổi màu chữ hàng loạt được là không đúng.

Mình muốn cái gì thì nói rõ ra. Riêng về vấn đề nhảy lộn xộn ấy, cách triệt để là bắn thẳng ra file PDF. Từ Excel xuất ra PDF cũng chỉ một nốt nhạc.
Đối với Tool mà #9 đã hỗ trợ bạn, thì từ đó muốn thành ra cái gì mà chẳng được. Chỉ sợ lòng người chưa đủ chân thành và khiêm tốn.
 
A

Andreasepq

Guest
Không biết thì nói là không biết, khiêm tốn thì người khác họ chỉ cho, chứ cứ cố nghĩ ra lý do để làm gì, vì mình thấy các lý do của #10 không thuyết phục.
 

tuhocvba

Administrator
Thành viên BQT
Cảm ơn bác,
Thực ra là em dùng Excel 90% rồi mới paste kết quả ra Word và chỉnh tiếp, lý do em kết thúc bằng Word thì có nhiều:
Nói dài nhưng tựu chung một điểm là chẳng có lý do gì, chỉ đơn giản là bạn quen thao tác trên word, cho nên mới bắn kết quả ra word. Để khỏi sợ người khác nghịch chỉnh sửa, thì chỉ có bắn ra PDF mới ổn, chứ trên word, nhỡ tay bấm vài lần vào nút delete thì vẫn mất ảnh, hoặc chỉnh sửa độ rộng table thì ảnh vẫn bị co lại. Tôi dừng thảo luận và hỗ trợ topic này ở đây.
 

Euler

Administrator
Thành viên BQT
Theo tôi, bạn chủ topic nên có thái độ chân thành, khiêm tốn, thì sẽ nhận được sự giúp đỡ chí tình. Khi đưa ra yêu cầu thì nên nói rõ lý do, mục đích.
Đừng tự đưa ra phương án giải quyết, vì có thể phương án của bạn chưa phải là tốt nhất.
Chẳng hạn vẫn là code tạo ra output là word, nhưng người ta vẫn lấy Excel làm nền để code nhưng output là file word.

Ngoài ra để tránh người dùng sờ mó chỉnh sửa, thì nên đưa ra output là pdf hoặc html thì hay hơn.
Mong admin tuhocvba tiếp tục hỗ trợ topic này.
 

tuhocvba

Administrator
Thành viên BQT
Này thì word, thời gian cho tới khi hiện thông báo complete là 1 phút:
Bạn cần đăng nhập để thấy hình ảnh

Link download:
 

Euler

Administrator
Thành viên BQT
Nếu cho Word ẩn đi, thì tốc độ sẽ cải thiện hơn.
Mã:
Sub createop()
    Dim WordApp1    As Word.Application
    Dim WordDoc1    As Word.Document
    Dim myRange     As Word.Range
    Dim Picname     As String
    Dim n       As Long, i As Long, j As Long
    n = UBound(arrim, 2)
    Set WordApp1 = CreateObject("Word.Application")
    WordApp1.Visible = False
    
    Set WordDoc1 = WordApp1.Documents.Add
    
    With WordDoc1
        Dim myTable As Word.Table
        Set myRange = .Range(Start:=0, End:=0)
        Set myTable = .Tables.Add(Range:=myRange, NumRows:=(n + 1), NumColumns:=3)
        For i = 2 To n + 1 Step 1
            myTable.Cell(i, 3).Range.InlineShapes.AddPicture CStr(arrim(2, i - 1))
            Picname = Replace(CStr(arrim(1, i - 1)), ".GIF", "", 1, , vbTextCompare)
            myTable.Cell(i, 1).Range.Text = tachstt(Picname)
            myTable.Cell(i, 2).Range.Text = tachcode(Picname)
        Next i
        
         myTable.Cell(1, 1).Range.Text = "STT"
         myTable.Cell(1, 2).Range.Text = "S/N"
         myTable.Cell(1, 3).Range.Text = "BarCode"
    End With
'    WordApp1.Quit True
    WordApp1.Visible = True
    Set WordApp1 = Nothing
    Set WordDoc1 = Nothing
    MsgBox "Completed"
End Sub
Link download ver1.1.1:
 
T

thanhphong

Guest
Đúng là tuyệt vời, vì chỉ cần select chọn folder barcode là nó chạy thẳng ra file word, tự nhập số thứ tự, tên, và chèn ảnh barcode.
Chỉ e rằng, sau topic này, chủ topic sẽ không còn nhờ vả được gì trên diễn đàn này nữa.
 
Top