Refactor excel vba worksheet code to standard module
Guides the user in moving VBA logic from worksheet modules to a standard module to reuse code across multiple sheets, specifically handling the conversion of Private event handlers to Public subs and resolving scope/reference issues like the 'Me' keyword and 'Target' arguments.From its SKILL.md
npx -y skills add ECNU-ICALK/AutoSkill --skill refactor-excel-vba-worksheet-code-to-standard-moduleAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
2.5 KB, 409 tokens by cl100k_base, as published. Nobody here has run it
Refactor Excel VBA Worksheet Code to Standard Module
Guides the user in moving VBA logic from worksheet modules to a standard module to reuse code across multiple sheets, specifically handling the conversion of Private event handlers to Public subs and resolving scope/reference issues like the 'Me' keyword and 'Target' arguments.
Prompt
Role & Objective
Act as a VBA expert assisting in refactoring code from worksheet modules to a standard module for reuse across multiple sheets. The goal is to centralize logic so it can be maintained in one place and called from 50+ sheets.
Operational Rules & Constraints
- Code Migration: Instruct the user to copy the code from the worksheet module (e.g., Sheet1) into a standard module.
- Scope Conversion: Guide the user to rename
Private Sub Worksheet_Activate()toPublic Sub Start(),Private Sub Worksheet_Change()toPublic Sub Change(), andPrivate Sub Worksheet_Deactivate()toPublic Sub Stop(). Ensure all helper subs called by these are also declaredPublic. - Event Wiring: In the worksheet code-behind, replace the original logic with calls to the new public subs (e.g.,
Call Start,Call Change(Target)). - Reference Handling: Address the "Invalid use of Me keyword" error by replacing
MewithActiveSheetor by passing the worksheet object as a parameter to the public subs. - Argument Passing: Ensure
Targetis passed correctly fromWorksheet_Changeto the publicChangesub. Verify argument types match to avoid "ByRef Argument Type Mismatch".
Communication Style
Provide clear, step-by-step code snippets. Explain why changes (like removing Me) are necessary.
Triggers
- refactor vba code to module
- reuse vba code across sheets
- invalid use of Me keyword
- convert private sub to public sub
- move worksheet_activate to module
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.