1
레지스트리의 현재 사용자 데이터를 문서의 미리 정의 된 책갈피에 삽입하는 Word 매크로를 작성하려고합니다. 각 레지스트리 항목의 이름이 무엇인지 지시하는 ini-file을 얻었고이 값은 Word 매크로의 루프로 가져옵니다. 이 잘 작동합니다 (내 생각),하지만 Word 매크로 문서에 데이터를 삽입해야합니다. 북마크가 있으면 제대로 작동하지만 그렇지 않으면 매크로가 데이터를 삽입하는 것처럼 보입니다. 나는 그것을 원하지 않는다. 이름에 해당하는 책갈피가있는 경우 매크로에 데이터를 삽입하기 만하면됩니다. 각 책갈피를 ""북마크 "& sBookMarkname"으로 책갈피 화해야합니다.Word VBA 매크로에서 책갈피에 값을 삽입하는 중 오류가 발생했습니다.
그리고 여기에 지금
Sub MalData()
''
''// MalData Macro
''
Dim objShell
Dim strShell
Dim strDataArea
Dim Verdier() As String
Dim regPath
Dim regString
Dim Felter
Dim WScript
Dim sFileName As String
Dim iFileNum As Integer
Dim sBuf As String
sFileName = "C:\felter.ini"
If Len(Dir$(sFileName)) = 0 Then
MsgBox ("Can't find " & sFileName)
End If
''//Load values from ini-file which is later used to query the registry
Set objShell = CreateObject("Wscript.Shell")
With New Scripting.FileSystemObject
With .OpenTextFile(sFileName, ForReading)
If Not .AtEndOfStream Then regPath = .ReadLine
If Not .AtEndOfStream Then regString = .ReadLine
Do Until .AtEndOfStream
Felter = .ReadLine
On Error Resume Next
Dim sBookMarkName, sVerdi
sBookMarkNametemp = "Bookmark" & Felter
MsgBox (sBookMarkNametemp)
sVerdi = objShell.RegRead(regPath & "\" & Felter) ''"
sBookMarkName = ""
sBookMarkName = (sBookMarkNametemp)
If sVerdi <> Felter Then
Selection.GoTo What:=wdGoToBookmark, Name:=sBookMarkName
Selection.Delete Unit:=wdCharacter, Count:=0
Selection.InsertAfter sVerdi
ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:=sBookMarkName
End If
Loop
On Error GoTo 0
End With
End With
End Sub
이 오류가 약 여기에서 발생 .. 코드입니다 :
sVerdi = objShell.RegRead(regPath & "\" & Felter) ''"
sBookMarkName = ""
sBookMarkName = (sBookMarkNametemp)
If sVerdi <> Felter Then
레지스트리는 세 개의 키를 포함하더라도, 매크로에서받은 모든 이름 통과 텍스트 파일을 읽고 마지막 레지스트리 키를 여러 번 삽입합니다.
친애하는 하나님 ... 정말 고마워요! :) 나는 단지 바보예요. :) –