ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
29 visibility
موضوع: آفیس توسط:

شرکت فرانسیسکو اخیراً الگوهای مشترک خود را از یک سرور به سرور دیگر منتقل کرده است. اکنون، آنها دیگر نمی‌توانند هیچ سندی را که در گذشته ایجاد شده و به مکان قالب قدیمی اشاره می‌کرده است باز کنند. هنگامی که می‌خواهند سند را باز کنند، صفحه نمایش Word را دریافت می‌کنند. فرانسیسکو در شگفت است که چگونه می توانند از اسناد قدیمی خود استفاده کنند اگر حتی نمی توانند آنها را باز کنند.

چند روش وجود دارد که می توانید برای مشکلی مانند این استفاده کنید. اگر مکان قالب در سرور قدیمی از طریق یک درایو نگاشت شده در ویندوز قابل دسترسی بوده است، ممکن است بتوانید به سادگی درایو را به مکان جدید دوباره نقشه برداری کنید. به عنوان مثال، اگر مکان قالب قدیمی به درایو Z: نگاشت شده است، کافی است اتصال نگاشت را در ویندوز قطع کنید و درایو Z: را دوباره به مکان سرور جدید نقشه برداری کنید. اگر می‌توانید این کار را انجام دهید، اسناد Word شما باید مستقیماً باز شوند، زیرا نقشه‌برداری مکان به طور کامل توسط ویندوز انجام می‌شود.

با این حال، اگر به الگوهای شما با استفاده از یک مسیر UNC به جای درایو نقشه‌برداری شده دسترسی پیدا کرده‌اید، ممکن است بخواهید ببینید که آیا افراد فناوری اطلاعات شما می‌توانند سرور قدیمی‌تر را راه‌اندازی کنند تا اینکه بتوانید اسناد خود را باز کنید و مکان قالب را در اسناد تغییر دهید. یا شاید آنها می توانند یک "نام مستعار" در سرور جدید ایجاد کنند که به نظر می رسد، برای ماشین های متصل شما، گویی مسیر سرور قدیمی اکنون در سرور جدید است. مگر اینکه در سرور واقعی انجام شود.)

اگر می خواهید، می توانید از یک ماکرو برای دسترسی به اسناد استفاده کنید و الگوی پیوست شده را به چیزی که از طریق رایانه قابل دسترسی است تغییر دهید. موارد زیر را می توان به عنوان نقطه شروع خوبی برای چنین کلان در نظر گرفت.

Sub FixDocs()
    Dim sDocRoot As String
    Dim sNewTemplate As String
    Dim sUserTemplates As String
    Dim sWorkgroupTemplates As String
    Dim sFile As String
    Dim sAbsFile As String
    Dim sAbsTemplate As String
    Dim sOldTemplate As String
    Dim d As Document
    Dim sMsg As String
    Dim sTemp As String

    sDocRoot = "c:path	odocuments"
    sNewTemplate = "c:absolutelocationof
ew	emplateNormal.dotm"

    With Application.Options
        sWorkgroupTemplates = .DefaultFilePath(wdWorkgroupTemplatesPath)
        sUserTemplates = .DefaultFilePath(wdUserTemplatesPath)
    End With

    sFile = Dir(sDocRoot & "*.docx")

    Do While Len(sFile) > 0
        sAbsFile = sDocRoot & sFile
        Set d = Documents.Open(sAbsFile)
        sOldTemplate = d.AttachedTemplate

        sMsg = sMsg & "Document Name          = " & sFile & vbCrLf
        sMsg = sMsg & "Absolute Document Name = " & sAbsFile & vbCrLf
        sMsg = sMsg & "Attached Template      = " & sOldTemplate & vbCrLf

        sTemp = "Old template (" & sOldTemplate & ") found in "
        sAbsTemplate = sWorkgroupTemplates & "" & sOldTemplate
        If IsFile(sAbsTemplate) Then
            sTemp = sTemp & "workgroups template directory"
        Else
            sAbsTemplate = sUserTemplates & "" & sOldTemplate
            If IsFile(sAbsTemplate) Then
                sTemp = sTemp & "user templates directory"
            Else
                sTemp = "Old template (" & sOldTemplate & ") not found"
            End If
        End If
        sMsg = sMsg & sTemp & vbCrLf

        If sAbsTemplate <> sNewTemplate Then
            d.AttachedTemplate = sNewTemplate
            d.Close SaveChanges:=wdSaveChanges
            sMsg = sMsg & "Document updated" & vbCrLf
        Else
            d.Close SaveChanges:=wdDoNotSaveChanges
            sMsg = sMsg & "Document not updated" & vbCrLf
        End If

        Set d = Nothing
        sMsg = sMsg & vbCrLf
        sFile = Dir
    Loop
    MsgBox sMsg
End Sub
Function IsFile(ByRef fName As String) As Boolean
    "Returns TRUE if the provided name points to an existing file
    "Returns FALSE if not existing, or if it"s a folder

    On Error Resume Next
    IsFile = ((GetAttr(fName) And vbDirectory) <> vbDirectory)
End Function

برای استفاده از ماکرو، باید مسیر اختصاص داده شده به sDocRoot را تغییر دهید؛ این مسیر باید دایرکتوری (با اسلش انتهایی) باشد که اسناد شما در آن قرار دارند. سپس، sNewTemplate را تغییر دهید تا مسیر کامل به الگوی جدید مورد نظر شما باشد. برای استفاده.

ماکرو از طریق هر سند در دایرکتوری sDocRoot گام برمی دارد، آن را باز می کند، بررسی می کند که آیا الگوی قدیمی در فهرست الگوهای گروه کاری یا در فهرست الگوهای کاربر قرار دارد یا خیر، و سپس اگر قبلاً پیوست نشده بود، الگوی پیوست شده را به الگوی جدید تغییر می دهد.

یکی از کارهایی که قطعاً باید قبل از استفاده از این ماکرو انجام دهید، تهیه نسخه پشتیبان از تمام اسنادی است که می خواهید پردازش کنید. ممکن است کمی آزمایش و خطا طول بکشد تا مطمئن شوید که همه چیز به آنچه نیاز دارید تغییر می کند، اما "ردیابی حسابرسی" " که در متغیر sMsg کامپایل شده است در این زمینه مفید خواهد بود. ماکرو نتایج را پس از تکمیل نمایش می دهد، اما همیشه می توانید ماکرو را تغییر دهید تا نتایج را در یک سند کاملاً جدید ذخیره کنید تا بتوانید یک رکورد دائمی از آنچه انجام شده است داشته باشید. .

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 94 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 21 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 28 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 29 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 22 visibility

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

361 نفر آنلاین
0 عضو و 361 مهمان در سایت حاضرند
بازدید امروز: 26372
بازدید دیروز: 25180
بازدید کل: 20363712
...