• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Trao đổi về Word VBA Mời vào đây!

Nơi trao đổi về VBA (Visual Basic for Application), lập trình cho ứng dụng Microsoft Office, AutoCAD...

Điều hành viên: tungblt

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: Trao đổi về Word VBA Mời vào đây!

Gửi bàigửi bởi truongphu » T.Bảy 21/09/2013 6:59 pm

tieulongnu_young đã viết:Theo như anh nói, em sẽ tạo một danh sách dùng để trộn thư bằng access, trong đó có trường hình ảnh, phải không ạ?


Tôi đã thử lại nhiều cách: có hay không có placehold, vẫn không thành công khi merge mail.
Thành thật xin lỗi cô tieulongnu_young

Để bù lại:

cách 1:
http://wordnut.hubpages.com/hub/IncludePicture

Nội dung trong trang web nầy: Insert 1 file ảnh: trước khi nhấn Insert, hãy nhấn nhẹ bên góc phải của nút và chọn Link to File

Các file hình để trong một folder, tên file trùng với dữ liệu của một field, ví dụ field DiaDiem
Hình chèn liên kết sẽ hiện lên. Nhấn Alt + F9 để chuyển qua chế độ code, sẽ thấy: vd
{ INCLUDEPICTURE "D:\\My Documents\\My Pictures\\Hinh Ve Tinh\\Nha Phu.BMP" \* MERGEFORMAT \d }

Trong câu trên, rõ ràng file Nha Phu.BMP đã được chọn, hãy thay Nha Phu với { MERGEFIELD "DiaDiem" }, sẽ thành:
{ INCLUDEPICTURE "D:\\My Documents\\My Pictures\\Hinh Ve Tinh\\{ MERGEFIELD "DiaDiem" }.BMP" \* MERGEFORMAT \d }

Nhấn lại Alt + F9 để trớ lại nhìn bình thường
các bước mail merge như cũ. Sau đó sẽ kiểm tra được (preview) hình có thay đổi hay không...
Xong nhớ xuất ra file

cách 2:
www.smallbusinesscomputing.com/buyersgu ... etters.htm

Thấy hướng dẫn trên Word 2003, Mục Select document type, chọn E-mail messagge thay vì Letters, nhưng chả hiểu sao Word trên máy tôi không có, có lẽ do không cài outlook...

cách 3: Tôi đã test êm:
office.microsoft.com/en-us/publisher-help/merge-pictures-into-a-publication-HP001038506.aspx

Nội dung là yêu cầu cài thêm Publisher. Tôi đã cài bổ sung Pub 2003 trong bộ O 2003
Trong nầy, khi gọi mail ra, chọn mail merge
Trong file CSDL, có field ghi path của hình ảnh, chỉ cần Path là đủ
Khi chèn Field nầy vào file, phải nhấn nhẹ nút bên phải để chọn chế độ bên dưới: Insert As Picture

và thế là OK.

Chúc cô nàng thành công.


o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

tieulongnu_young
Thành viên chính thức
Thành viên chính thức
Bài viết: 12
Ngày tham gia: T.Tư 18/08/2010 3:58 pm

Re: Trao đổi về Word VBA Mời vào đây!

Gửi bàigửi bởi tieulongnu_young » T.Ba 24/09/2013 4:28 pm

Cám ơn anh Trường Phú đã hướng dẫn tận tình, em đã làm theo cách 1 của anh và tham khảo thêm đương link anh gửi, nhưng không hiểu sao mọi bước em làm đều đúng nhưng hình ảnh vẫn không thay đổi đươc, em đã làm đúng theo từng chi tiết của hướng dẫn, nhờ anh tư vấn giúp em xem nên làm thế nào đây anh ơi./.

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: Trao đổi về Word VBA Mời vào đây!

Gửi bàigửi bởi truongphu » T.Tư 25/09/2013 9:45 am

o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

wan
Thành viên chính thức
Thành viên chính thức
Bài viết: 10
Ngày tham gia: T.Hai 17/10/2011 10:51 am

Re: Trao đổi về Word VBA Mời vào đây!

Gửi bàigửi bởi wan » T.Năm 10/10/2013 2:54 pm

A có thể giúp e tạo macro chuyển đổi font smallcap trong word được không. E có 1 từ có font small cap, vì font small cap nó Hoa lớn ở từ đầu tiên và nhỏ ở từ thứ 2 trở đi. Giờ e muốn chèn 1 thẻ cho các từ phía sau. VD chữ: HHHHH là font small cap. Giờ e muốn chèn như sau: H<sc>HHHH</sc>. A có thể tạo giúp e macro chuyển đổi như trên được không. E cám ơn!

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: Trao đổi về Word VBA Mời vào đây!

Gửi bàigửi bởi truongphu » T.Bảy 12/10/2013 8:49 pm

wan đã viết:giúp e tạo macro chuyển đổi font smallcap trong word được không

Chưa rõ bạn muốn đổi font gì

wan đã viết:muốn chèn 1 thẻ cho các từ phía sau. VD chữ: HHHHH là font small cap. Giờ e muốn chèn như sau: H<sc>HHHH</sc>.

Đấy là tìm và thay thông thường. Các code tìm và thay ở các trang trước. Code tìm và thay không lệ thuộc kiểu font!
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

anhcau
Bài viết: 8
Ngày tham gia: T.Bảy 06/07/2013 1:18 pm

Re: Trao đổi về Word VBA Mời vào đây!

Gửi bàigửi bởi anhcau » T.Hai 21/10/2013 8:40 am

Lính mới đây!

Đóng góp bài sưu tầm tý cho xôm tụ; vì ngu dốt nên cứ dùng của người khác làm ra rồi đem ra giới thiệu cho ace. Thông cảm nhé.
Có cái bài tìm từ trong file word, xin giới thiệu. Ở đây nó sẽ tìm từ và đưa ra số lượng từ đó.
Có điều nó chỉ tìm được Tiếng Anh, còn dạng Unicode như TViet thì mình thấy nó tìm không được. Không hiểu có ai cải tiến được không?


Đây là lời giới thiệu
As you are analyzing your documents, you may wonder if there is a way to create a count of the number of words in the document. Unfortunately, Word doesn't include such a feature, but there are a couple of things you can do.

First, if you want to know the number of times a specific word or phrase is used, you can follow these steps:

Press Ctrl+H to display the Replace tab of the Find and Replace dialog box.

Figure 1. The Replace tab of the Find and Replace dialog box.
In the Find What box, enter the word or phrase you want counted.
In the Replace With box, enter ^&. This character sequence tells Word that you want to replace what you find with whatever you placed in the Find What box. (In other words, you are replacing the word or phrase with itself.)
If you are searching for individual words, make sure you click the Find Whole Words Only check box.
Click on Replace All. Word makes the replacements and shows you how many instances it replaced. That is the number you want.

This approach works great if you just have one or two words or phrases you want to know about. You can automate the process a bit by using a macro to search through the document and count for you. The following macro prompts the user for a word, and then counts the number of times that word appears in the document. It will continue to ask for another word until the user clicks on the Cancel button.



Mã: Chọn hết

Sub FindWords()
    Dim sResponse As String
    Dim iCount As Integer

    ' Input different words until the user clicks cancel
    Do
        ' Identify the word to count
        sResponse = InputBox( _
          Prompt:="What word do you want to count?", _
          Title:="Count Words", Default:="")
   
        If sResponse > "" Then
            ' Set the counter to zero for each loop
            iCount = 0
            Application.ScreenUpdating = False
            With Selection
                .HomeKey Unit:=wdStory
                With .Find
                    .ClearFormatting
                    .Text = sResponse
                    ' Loop until Word can no longer
                    ' find the search string and
                    ' count each instance
                    Do While .Execute
                        iCount = iCount + 1
                        Selection.MoveRight
                    Loop
                End With
                ' show the number of occurences
                MsgBox sResponse & " appears " & iCount & " times"
            End With
            Application.ScreenUpdating = True
        End If
    Loop While sResponse <> ""
End Sub

anhcau
Bài viết: 8
Ngày tham gia: T.Bảy 06/07/2013 1:18 pm

Re: Trao đổi về Word VBA Mời vào đây!

Gửi bàigửi bởi anhcau » T.Hai 21/10/2013 8:48 am

[sưu tầm tiếp]
Còn đây là nó tìm từng từ một và thống kê số lượng từ. Rồi đưa ra 1 file word. Mình đã thử 1 lần và nó tìm được và đưa ra nhưng toàn là chữ thường thôi, chưa kiểm tra hết các trường hợp. Nó đưa ra được cả từ Unicode. Mời ace cần cải tiến hay tham khảo thì cứ tùy nghi.


If you want to determine all the unique words in a document, along with how many times each of them appears in the document, then a different approach is needed. The following VBA macro will do just that.

Mã: Chọn hết

Sub WordFrequency()
    Const maxwords = 9000          'Maximum unique words allowed
    Dim SingleWord As String       'Raw word pulled from doc
    Dim Words(maxwords) As String  'Array to hold unique words
    Dim Freq(maxwords) As Integer  'Frequency counter for unique words
    Dim WordNum As Integer         'Number of unique words
    Dim ByFreq As Boolean          'Flag for sorting order
    Dim ttlwds As Long             'Total words in the document
    Dim Excludes As String         'Words to be excluded
    Dim Found As Boolean           'Temporary flag
    Dim j, k, l, Temp As Integer   'Temporary variables
    Dim ans As String              'How user wants to sort results
    Dim tword As String            '

    ' Set up excluded words
    Excludes = "[the][a][of][is][to][for][by][be][and][are]"

    ' Find out how to sort
    ByFreq = True
    ans = InputBox("Sort by WORD or by FREQ?", "Sort order", "WORD")
    If ans = "" Then End
    If UCase(ans) = "WORD" Then
        ByFreq = False
    End If
   
    Selection.HomeKey Unit:=wdStory
    System.Cursor = wdCursorWait
    WordNum = 0
    ttlwds = ActiveDocument.Words.Count

    ' Control the repeat
    For Each aword In ActiveDocument.Words
        SingleWord = Trim(LCase(aword))
        'Out of range?
        If SingleWord < "a" Or SingleWord > "z" Then
            SingleWord = ""
        End If
        'On exclude list?
        If InStr(Excludes, "[" & SingleWord & "]") Then
            SingleWord = ""
        End If
        If Len(SingleWord) > 0 Then
            Found = False
            For j = 1 To WordNum
                If Words(j) = SingleWord Then
                    Freq(j) = Freq(j) + 1
                    Found = True
                    Exit For
                End If
            Next j
            If Not Found Then
                WordNum = WordNum + 1
                Words(WordNum) = SingleWord
                Freq(WordNum) = 1
            End If
            If WordNum > maxwords - 1 Then
                j = MsgBox("Too many words.", vbOKOnly)
                Exit For
            End If
        End If
        ttlwds = ttlwds - 1
        StatusBar = "Remaining: " & ttlwds & ", Unique: " & WordNum
    Next aword

    ' Now sort it into word order
    For j = 1 To WordNum - 1
        k = j
        For l = j + 1 To WordNum
            If (Not ByFreq And Words(l) < Words(k)) _
              Or (ByFreq And Freq(l) > Freq(k)) Then k = l
        Next l
        If k <> j Then
            tword = Words(j)
            Words(j) = Words(k)
            Words(k) = tword
            Temp = Freq(j)
            Freq(j) = Freq(k)
            Freq(k) = Temp
        End If
        StatusBar = "Sorting: " & WordNum - j
    Next j

    ' Now write out the results
    tmpName = ActiveDocument.AttachedTemplate.FullName
    Documents.Add Template:=tmpName, NewTemplate:=False
    Selection.ParagraphFormat.TabStops.ClearAll
    With Selection
        For j = 1 To WordNum
            .TypeText Text:=Trim(Str(Freq(j))) _
              & vbTab & Words(j) & vbCrLf
        Next j
    End With
    System.Cursor = wdCursorNormal
    j = MsgBox("There were " & Trim(Str(WordNum)) & _
      " different words ", vbOKOnly, "Finished")
End Sub



When you open a document and run this macro, you are asked if you want to create a list sorted by word or by frequency. If you choose word, then the resulting list is shown in alphabetical order. If you choose frequency, then the resulting list is in descending order based on how many times the word appeared in the document.

While the macro is running, the status bar indicates what is happening. Depending on the size of your document and the speed of your computer, the macro may take a while to complete. (I ran it with a 719-page document with over 349,000 words and it took about five minutes to complete.)

Note that there is a line in the macro that sets a value in the Excludes string. This string contains words that the macro will ignore when putting together the word list. If you want to add words to the exclusion list, simply add them to the string, between [square brackets]. Also, make sure the exclusion words are in lowercase.

If you don't like to use macros for some reason, there are other programs you can use to create word counts. For instance, the NoteTab text editor (the "light" version can be downloaded free at http://www.notetab.com) includes a feature that provides a word count. All you need to do is copy your entire document and paste it into NoteTab. Then, within NoteTab, choose Tools | Text Statistics | More. It presents an analysis of the word frequency, including percentages.

anhcau
Bài viết: 8
Ngày tham gia: T.Bảy 06/07/2013 1:18 pm

Re: Trao đổi về Word VBA Mời vào đây!

Gửi bàigửi bởi anhcau » T.Năm 24/10/2013 2:23 pm

Tôi học hỏi của anh Phú được một số kỹ thuật xử lý cho word. Khá hữu ích, xin anh chị em phát triển thêm !!
Có một vấn đề này trong VBA code : Tên Hàm: Mở document, tự động đến trang lần trước đang đọc , nhưng nó sẽ bị nhảy lỗi khi phải tắt word bất thình lình, tức là nó không lưu lại được cái trang hiện có (thí dụ treo máy) thì làm thế nào để khắc phục là nó tự động nhảy về khi trước nhỉ, và làm sao nó tự động lưu trang đang xem, khi thoát ra mỗi lần nó không hỏi có lưu hay không (dù chỉ mở xem qua)

Mã: Chọn hết

' On Document_Close event procedure write below code
Private Sub Document_Close()
     Selection.Collapse Direction:=wdCollapseStart
     ActiveDocument.Bookmarks.Add Name:="LastPosition", Range:=Selection.Range
End Sub

'On Document_Open event procedure, write below code
Private Sub Document_Open()
    Selection.GoTo what:=wdGoToBookmark, Name:="LastPosition"
    ActiveDocument.Bookmarks("LastPosition").Delete
End Sub

anhcau
Bài viết: 8
Ngày tham gia: T.Bảy 06/07/2013 1:18 pm

Re: Trao đổi về Word VBA Mời vào đây!

Gửi bàigửi bởi anhcau » T.Ba 29/10/2013 1:49 pm

Mới sưu tầm được món hiển thị các sheet trong exell như mã dưới đây. Làm sao có thể hiển thị được tương tự nếu dùng trong Word VBA. Xin các cao thủ chỉ giáo giúp

Thí dụ nó liệt kê các sheet1 / sheet2/ sheet3 để in





Mã: Chọn hết

Sub SelectSheets()
    Dim i As Integer
    Dim TopPos As Integer
    Dim SheetCount As Integer
    Dim PrintDlg As DialogSheet
    Dim CurrentSheet As Worksheet
    Dim cb As CheckBox
    Application.ScreenUpdating = False

'   Check for protected workbook
    If ActiveWorkbook.ProtectStructure Then
        MsgBox "Workbook is protected.", vbCritical
        Exit Sub
    End If

'   Add a temporary dialog sheet
    Set CurrentSheet = ActiveSheet
    Set PrintDlg = ActiveWorkbook.DialogSheets.Add

    SheetCount = 0

'   Add the checkboxes
    TopPos = 40
    For i = 1 To ActiveWorkbook.Worksheets.Count
        Set CurrentSheet = ActiveWorkbook.Worksheets(i)
'       Skip empty sheets and hidden sheets
        If Application.CountA(CurrentSheet.Cells) <> 0 And _
            CurrentSheet.Visible Then
            SheetCount = SheetCount + 1
            PrintDlg.CheckBoxes.Add 78, TopPos, 150, 16.5
                PrintDlg.CheckBoxes(SheetCount).Text = _
                    CurrentSheet.Name
            TopPos = TopPos + 13
        End If
    Next i

'   Move the OK and Cancel buttons
    PrintDlg.Buttons.Left = 240

'   Set dialog height, width, and caption
    With PrintDlg.DialogFrame
        .Height = Application.Max _
            (68, PrintDlg.DialogFrame.Top + TopPos - 34)
        .Width = 230
        .Caption = "Select sheets to print"
    End With

'   Change tab order of OK and Cancel buttons
'   so the 1st option button will have the focus
    PrintDlg.Buttons("Button 2").BringToFront
    PrintDlg.Buttons("Button 3").BringToFront

'   Display the dialog box
    CurrentSheet.Activate
    Application.ScreenUpdating = True
    If SheetCount <> 0 Then
        If PrintDlg.Show Then
            For Each cb In PrintDlg.CheckBoxes
                If cb.Value = xlOn Then
                    Worksheets(cb.Caption).Activate
                    ActiveSheet.PrintOut
'                   ActiveSheet.PrintPreview 'for debugging
                End If
            Next cb
        End If
    Else
        MsgBox "All worksheets are empty."
    End If

'   Delete temporary dialog sheet (without a warning)
    Application.DisplayAlerts = False
    PrintDlg.Delete

'   Reactivate original sheet
    CurrentSheet.Activate
End Sub

tamsan
Bài viết: 1
Ngày tham gia: T.Hai 18/11/2013 4:33 pm

Re: Trao đổi về Word VBA Mời vào đây!

Gửi bàigửi bởi tamsan » T.Hai 18/11/2013 4:40 pm

Mấy bác cao nhân giúp em với, số là em tạo 1 mẫu template sẵn trong Word bây giờ em muốn add nó vào theo 1 đường dẫn (C:\Documents and Settings\user name\Application Data\Microsoft\Templates.) viết bằng code VBA nha mấy bác chứ copy bằng tay thì em biết. Nhưng trước khi save hiện lên bảng thông báo" bạn có muốn save hay là không". cám ơn mấy bác. và cái macro nay em save thanh 1 file sao đó em add vào Add-Ins làm công cụ riêng nhưng ko biết đường dẫn vào Add-In vì e muốn đóng gói thành file exe cài tự động.

minhvientiger
Bài viết: 2
Ngày tham gia: T.Sáu 20/12/2013 12:17 pm

Re: Trao đổi về Word VBA Mời vào đây!

Gửi bàigửi bởi minhvientiger » T.Sáu 27/12/2013 12:11 pm

Các anh chị ơi! Có thể viết cho em đoạn mã cho commandButton trong powerpoint đang trình chiếu để mở một file powerpoint định dạng *.pps khác được không ạ? Với điều kiện file mở lên cũng ở dạng trình chiếu luôn. À! Sẳn cho thêm dòng code để khi mở file mới thì nó đóng file cũ luôn. Em cảm ơn nhiều lắm.

moitinhdau
Thành viên chính thức
Thành viên chính thức
Bài viết: 15
Ngày tham gia: T.Bảy 28/05/2011 11:59 am
Has thanked: 1 time
Been thanked: 1 time

Re: Trao đổi về Word VBA Mời vào đây!

Gửi bàigửi bởi moitinhdau » T.Ba 14/01/2014 9:47 am

Mình có đoạn code bên tàng kinh các như sau:

Mã: Chọn hết

Sub DuyêtDòngFile()
'truongphu
Static SôChuong%
Dim para As Paragraph
Dim MM$: MM = "ch" & ChrW(&H1B0) & ChrW(&H1A1) & "ng"
For Each para In ActiveDocument.Paragraphs
    If (InStr(para.Range.Text, MM)) Then
        para.Range.Font.Color = 255
        SôChuong = SôChuong + 1
    End If
Next


Tuy nhiên khi mình muốn tô đỏ dòng 1. abc ( file mình khoảng 500 trang)
Mình cho nó vào for

Mã: Chọn hết

for i =1 to 10
for j =1 to 90
Dim MM$: MM = i & ". " & ChrW(J)


Thì chạy rất chậm và nó bôi đỏ luôn đoạn jhfsaff 1. hfdsafs

Bác nào có thể giúp mình được ko?

Thêm 1 vấn đề nữa là khi gặp table nó sẽ bỏ qua và làm việc tiếp với đoạn dưới. Rất mong các bác chỉ giúp

moitinhdau
Thành viên chính thức
Thành viên chính thức
Bài viết: 15
Ngày tham gia: T.Bảy 28/05/2011 11:59 am
Has thanked: 1 time
Been thanked: 1 time

Re: Trao đổi về Word VBA Mời vào đây!

Gửi bàigửi bởi moitinhdau » T.Tư 15/01/2014 11:39 am

Có cao thủ nào giúp mình với

moitinhdau
Thành viên chính thức
Thành viên chính thức
Bài viết: 15
Ngày tham gia: T.Bảy 28/05/2011 11:59 am
Has thanked: 1 time
Been thanked: 1 time

Re: Trao đổi về Word VBA Mời vào đây!

Gửi bàigửi bởi moitinhdau » T.Sáu 17/01/2014 11:04 am

Làm sao để nó không đọc giá trị trong bảng thế các bác

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: Trao đổi về Word VBA Mời vào đây!

Gửi bàigửi bởi truongphu » T.Bảy 18/01/2014 9:30 am

moitinhdau đã viết:Làm sao để nó không đọc giá trị trong bảng thế các bác


Trong Paragraph, nếu thấy có Table thì bỏ qua, dùng lệnh GoTo

Mã: Chọn hết

For Each para In ActiveDocument.Paragraphs
If para.Range.Tables.Count > 0 Then GoTo SkipTables
    If (InStr(para.Range.Text, MM)) Then
        para.Range.Font.Color = 255
    End If
SkipTables:
Next



moitinhdau đã viết:Thì chạy rất chậm và nó bôi đỏ luôn đoạn jhfsaff 1. hfdsafs


* Chạy rất chậm: file word của bạn 500 trang là nhẹ. Trên một file 20MB với máy tính bèo vẫn chạy nhanh. Bạn có thể xem lại các vòng lặp, chúng có động tác nào thừa và rối không?

* Bôi đỏ luôn đoạn...
Là đúng rồi, vì Paragraph là cả một câu nằm giữa 2 dấu xuống dòng. do đó lệnh sau áp dụng cho cả câu:
para.Range.Font.Color = 255

Để bôi đỏ cụm từ mong muốn, bạn phải dùng Selection chọn chúng rồi mới bôi đỏ.
Code về Selection trong chủ đề nầy viết rất nhiều, bạn chịu khó đọc lại...

moitinhdau đã viết:có đoạn code bên tàng kinh các như sau:


he he, không ngờ code tôi viết phiêu giạt xa xa...

moitinhdau đã viết:


nick của bạn sâu đậm lắm!
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

moitinhdau
Thành viên chính thức
Thành viên chính thức
Bài viết: 15
Ngày tham gia: T.Bảy 28/05/2011 11:59 am
Has thanked: 1 time
Been thanked: 1 time

Re: Trao đổi về Word VBA Mời vào đây!

Gửi bàigửi bởi moitinhdau » T.Bảy 18/01/2014 5:00 pm

Cảm ơn bác nhiều nhiều
Nếu bác thấy nick phù hợp với bác xin tặng bác luôn mình sẽ đặt nick mới là moitinhdau1 or moitinhdau2 cũng được :-)

taytrongtay
Bài viết: 1
Ngày tham gia: T.Bảy 08/02/2014 10:14 am

Re: Trao đổi về Word VBA Mời vào đây!

Gửi bàigửi bởi taytrongtay » T.Bảy 08/02/2014 10:25 am

Thank mọi người trước nhé.
Sửa lần cuối bởi taytrongtay vào ngày T.Hai 17/02/2014 8:57 am với 1 lần sửa.

docaotri
Bài viết: 4
Ngày tham gia: T.Năm 13/02/2014 11:57 pm
Has thanked: 2 time

xác định vị trí con trỏ

Gửi bàigửi bởi docaotri » T.Sáu 14/02/2014 12:10 am

Xin chào mọi người.
Tôi thật sự không rành về VBA lắm, tôi có thắc mắc không biết hỏi ai, lên diễn đàn mong mọi người giúp đỡ.
Bác truongphu có viết:

Mã: Chọn hết

Do Until Selection.Range.Bookmarks.Exists("\EndOfDoc")

tôi hiểu: vòng lặp sẽ kết thúc khi con trỏ ở cuối văn bản.
vậy: vòng lặp sẽ kết thúc khi con trỏ ở cuối vùng được bôi đen thì viết như thế nào?
ở đây tôi không thao tác trên toàn văn bản, mà chỉ bôi đen một phần và thao tác trên phần đó.
Xin chân thành cảm ơn.

docaotri
Bài viết: 4
Ngày tham gia: T.Năm 13/02/2014 11:57 pm
Has thanked: 2 time

Gửi bàigửi bởi docaotri » T.Sáu 14/02/2014 8:18 am

Mong moi nguoi giup.

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: Trao đổi về Word VBA Mời vào đây!

Gửi bàigửi bởi truongphu » T.Hai 17/02/2014 8:46 am

docaotri đã viết:vậy: vòng lặp sẽ kết thúc khi con trỏ ở cuối vùng được bôi đen thì viết như thế nào?


Bạn dùng code bình thường; tuy nhiên phải khai đối số của .Wrap là wdFindAsk

Mã: Chọn hết

.Wrap = wdFindAsk


nếu viết

Mã: Chọn hết

.Wrap = wdFindContinue

chúng sẽ thay hết văn bản

Không cần dùng code như:
docaotri đã viết:Do Until Selection.Range.Bookmarks.Exists("\EndOfDoc")
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh


Quay về “Visual Basic for Application (VBA)”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách