অন্য ম্যাক্রো সহ একটি ম্যাক্রো অক্ষম করুন। এক্সেল ভিবিএ


0

আমার কাছে 7 টি ম্যাক্রো রয়েছে যা কোনও ব্যবহারকারীকে একটি ওয়ার্কবুকে অনুলিপি করা এবং আটকাতে বাধা দেয়।

যাইহোক, এখন এবং পরে আমি অনুলিপি এবং পেস্ট করতে সক্ষম হতে চাই। অন্য ম্যাক্রো দিয়ে এই ম্যাক্রোগুলি অক্ষম করার কোনও উপায় আছে কি?

আমি কেবলমাত্র সমস্ত ম্যাক্রোকে কীভাবে অক্ষম করব সে সম্পর্কে কেবলমাত্র তথ্যই খুঁজে পেতে পারি এবং এটি অন্য ম্যাক্রোর সাথেই অর্জনযোগ্য বলে মনে হয় না।

আমি ম্যাক্রোগুলি আবারও চালু করতে সক্ষম হতে চাই এবং যখনই ওয়ার্কবুক বন্ধ থাকবে তখনই এই ম্যাক্রো চালানোর পরিকল্পনা করলাম, যাতে পরবর্তী ব্যবহারকারী ডিফল্টরূপে অনুলিপি এবং অনুলিপি করতে না পারে।

কপি করা এবং আটকানো রোধ করতে নীচে আমি ম্যাক্রোগুলি ব্যবহার করি।

Private Sub Workbook_Activate()
    Application.CutCopyMode = False
    Application.OnKey "^c", ""
    Application.CellDragAndDrop = False
End Sub
Private Sub Workbook_Deactivate()
    Application.CellDragAndDrop = True
    Application.OnKey "^c"
    Application.CutCopyMode = False
End Sub
 Private Sub Workbook_WindowActivate(ByVal Wn As Window)
    Application.CutCopyMode = False
    Application.OnKey "^c", ""
    Application.CellDragAndDrop = False
End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
    Application.CellDragAndDrop = True
    Application.OnKey "^c"
    Application.CutCopyMode = False
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Application.CutCopyMode = False
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Application.OnKey "^c", ""
    Application.CellDragAndDrop = False
    Application.CutCopyMode = False
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    Application.CutCopyMode = False
End Sub

উপযুক্ত মান সহ এই মডিউল স্তরে একটি মাস্ক ভেরিয়েবল ভেরিয়েবল তৈরি করুন। এই ভেরিয়েবলের কিছুটা সেট করা থাকলে অক্ষম ক্রিয়াটি সম্পাদন করুন। স্থায়ী পরিবর্তনের জন্য কোডটিতে অন্য ম্যাক্রো বা সম্পাদনা থেকে এই ভেরিয়েবলটি পরিবর্তন করুন।
আকিনা

উত্তর:


0

দুর্ভাগ্যক্রমে ম্যাক্রো পরিচালনার মধ্যে স্থিতি / তথ্য স্থানান্তর করা ভিবিএতে সহজ নয় কারণ ম্যাক্রো পরিচালনার মধ্যে কোনও ভেরিয়েবল স্থায়ী হতে পারে না। আপনার দুটি বিকল্প রয়েছে:

  1. অন্য ম্যাক্রো থেকে কোডটি পরিবর্তন করুন
    আরও পড়ুন: https://stackoverflow.com/questions/14811343/is-it-possible-in-excel-vba-to- بدل-the-source-code-of- module- in-another -modul

  2. স্থিতির তথ্য একটি ঘরে সঞ্চয় করুন।
    আপনি যেমন স্প্রেডশিটের ডান নীচে কোণার সেলটি ব্যবহার করতে পারেন কারণ এটি ব্যবহারকারীরা নিয়মিত ব্যবহার করেন না।
    আপনি আপনার কোড যেমন পরিবর্তন করতে পারেন


Private Sub Workbook_Activate()
    If Sheets(1).Range("XFD1048576") = "paused" Then
        Exit Sub
    End If
    Application.CutCopyMode = False
    Application.OnKey "^c", ""
    Application.CellDragAndDrop = False
End Sub
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.