trungtamcnc
Thành viên hoạt động



- Tham gia
- 5/4/10
- Bài viết
- 124
- Được thích
- 9
Cảm ơn bác đã quan tâm. Các số 120001.. sẽ được đánh lần lượt từ đầu văn bản. Còn sau này em sẽ cho tùy biến đánh từ số bao nhiêu ạ!Tức trong tập tin Word đã có sẵn vd. 3 (10) shape, mỗi shape ở 1 trang? Thế các số 120001, 120002, 120003, ... lấy từ đâu? Từ trên trời? Quay xổ số? Thế từ đâu biết được vd. 120001 chèn vào shape ở trang 1 còn 120003 chèn vào trang 3 mà không phải ngược lại? Tung đồng xu?
Hỏi hay đố có thưởng vậy bạn? Hỏi mà không muốn nhọc công, muốn nghĩ ít, viết ít, giữ sức?
Bạn không hiểu gì cả. Tại sao là 120001 mà không là 113̃́78, 11379, ...Cảm ơn bác đã quan tâm. Các số 120001.. sẽ được đánh lần lượt từ đầu văn bản. Còn sau này em sẽ cho tùy biến đánh từ số bao nhiêu ạ!
Sub danh_so()
Const START = 120000
Dim shp As Shape, k As Long
For Each shp In ThisDocument.Shapes
shp.Select
k = Selection.Information(wdActiveEndPageNumber)
shp.TextFrame.TextRange.Text = "S" & ChrW(7889) & " phi" & ChrW(7871) & "u: " & START + k
Next
End Sub
Cảm ơn bác rất nhiều.Bạn không hiểu gì cả. Tại sao là 120001 mà không là 113̃́78, 11379, ...
Nếu là bắt đầu từ 120001 ở trang 1, rồi cứ mỗi trang tiếp theo tăng thêm 1 thì nói rõ ra ngay từ bài 1.
Mã:Sub danh_so() Const START = 120000 Dim shp As Shape, k As Long For Each shp In ThisDocument.Shapes shp.Select k = Selection.Information(wdActiveEndPageNumber) shp.TextFrame.TextRange.Text = "S" & ChrW(7889) & " phi" & ChrW(7871) & "u: " & START + k Next End Sub
Bạn không mô tả kỹ thôi nên tôi viết code như thế. Nếu chỉ cần đánh số liên tiếp trong văn bản nhưng không theo thứ tự trang, vd.Cảm ơn bác rất nhiều.
Sub danh_so()
Const START = 120000
Dim shp As Shape, k As Long
For Each shp In ThisDocument.Shapes
k = k + 1
shp.TextFrame.TextRange.Text = "S" & ChrW(7889) & " phi" & ChrW(7871) & "u: " & START + k
Next
End Sub
Sub danh_so1()
Const START = 120000
Dim shp As Shape, k As Long
For Each shp In ThisDocument.Shapes
k = shp.TextFrame.TextRange.Information(wdActiveEndPageNumber)
shp.TextFrame.TextRange.Text = "S" & ChrW(7889) & " phi" & ChrW(7871) & "u: " & START + k
Next
End Sub
Cảm ơn bác cho em mở mang kiến thức. Với mỗi trang có 1 Shaper thì chạy tốt. Em nhờ bác viết code đánh số hộ em trong tài liệu sau: Trang 1 tại ô số phiếu là "Số phiếu: 120001" ứng với học sinh thứ nhất, trang 2 tại ô số phiếu là "Số phiếu: 120002" ứng với học sinh thứ hai.Bạn không mô tả kỹ thôi nên tôi viết code như thế. Nếu chỉ cần đánh số liên tiếp trong văn bản nhưng không theo thứ tự trang, vd.
trang 1 -> 120002
trang 2 -> 120003
trang 3 -> 120001
thì bạn có thể thử code
Mã:Sub danh_so() Const START = 120000 Dim shp As Shape, k As Long For Each shp In ThisDocument.Shapes k = k + 1 shp.TextFrame.TextRange.Text = "S" & ChrW(7889) & " phi" & ChrW(7871) & "u: " & START + k Next End Sub
Thậm chí nếu các số theo đúng như thứ tự trang như ban đầu cũng không cần SELECT - tôi viết ban đêm, nghĩ gì thì viết luôn không phân tích sâu.
Mã:Sub danh_so1() Const START = 120000 Dim shp As Shape, k As Long For Each shp In ThisDocument.Shapes k = shp.TextFrame.TextRange.Information(wdActiveEndPageNumber) shp.TextFrame.TextRange.Text = "S" & ChrW(7889) & " phi" & ChrW(7871) & "u: " & START + k Next End Sub
Biết ngay mà. Lúc đầu mỗi trang chỉ có 1 shape, bây giờ nhỏ giọt thêm thông tin.Cảm ơn bác cho em mở mang kiến thức. Với mỗi trang có 1 Shaper thì chạy tốt. Em nhờ bác viết code đánh số hộ em trong tài liệu sau: Trang 1 tại ô số phiếu là "Số phiếu: 120001" ứng với học sinh thứ nhất, trang 2 tại ô số phiếu là "Số phiếu: 120002" ứng với học sinh thứ hai.
Sub danh_so()
Const START = 120000
Dim shp As Shape, k As Long
For Each shp In ThisDocument.Shapes
shp.Select
k = Selection.Information(wdActiveEndPageNumber)
If shp.Type = msoAutoShape Then shp.TextFrame.TextRange.Text = "S" & ChrW(7889) & " phi" & ChrW(7871) & "u: " & START + k
Next
End Sub
Chào bác @batman1 : Mỗi lần xuất dữ liệu từ phần mềm của BGD: Hình thức thì giống nhau nhưng nền tảng lại khác. Em đã viết được code đánh số phiếu cho một trong các kiểu đó. Nhưng code quá dài. Bác có thể bớt chút thời gian sửa lại em với. Em cảm ơn.
Xin lỗi bác, em gửi nhầm ạ! Đây ạ.Sửa gì hả bạn? Bạn có đính kèm code nào đâu? Tập tin docx không thể chứa code.
Bạn phải mô tả chứ. Bạn muốn tôi ngồi phân tích code của bạn rồi đoán ý bạn? Thế sao bạn không nói ngay cái ý đó mà bắt tôi nhọc công đoán?Xin lỗi bác, em gửi nhầm ạ! Đây ạ.
Sub Danhsophieu()
Dim start As Long, msg As String
start = InputBox("Nhap ma phieu bat dau:", "Thong bao", "1")
Selection.End = 0
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "S" & ChrW(7889) & " phi" & ChrW(7871) & "u:"
Do While .Execute
Selection.Text = Selection.Text & " " & start
Selection.Collapse wdCollapseEnd
start = start + 1
Loop
End With
msg = ChrW(272) + ChrW(227) + " " + ChrW(273) + ChrW(225) + "nh xong s" + ChrW(7889) + " phi" + ChrW(7871) + "u!"
Application.Assistant.DoAlert "Th" & ChrW(244) & "ng b" & ChrW(225) & "o", msg, 0, 4, 0, 0, 0
End Sub