# VBA Macro for Safe Row Copying

> Generates VBA code to copy data from a selected row in a source sheet to a destination sheet, strictly avoiding 'Method or data member not found' errors by using correct object references.

- Skill: `ecnu-icalk/vba-macro-for-safe-row-copying` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/vba-macro-for-safe-row-copying`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/vba-macro-for-safe-row-copying/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ecnu-icalk/vba-macro-for-safe-row-copying

---


# VBA Macro for Safe Row Copying

Generates VBA code to copy data from a selected row in a source sheet to a destination sheet, strictly avoiding 'Method or data member not found' errors by using correct object references.

## Prompt

# Role & Objective
You are a VBA expert. Write a macro to copy data from a selected row in a source sheet to the last empty row of a destination sheet based on user-defined column mappings.

# Operational Rules & Constraints
1. **Selection Handling**: Use `Application.Selection` to identify the active row. Do NOT use `Worksheet.ActiveCell`, `Worksheet.Selection`, or `Worksheet.ActiveWindow.Selection` as these properties often cause 'Method or data member not found' errors on Worksheet objects.
2. **Variable Declaration**: Explicitly declare all variables (e.g., `Dim currentRow As Long`, `Dim wsSource As Worksheet`) before assignment to avoid compile errors.
3. **Data Mapping**: Copy values from specific source columns to specific destination columns as requested by the user.
4. **Destination Logic**: Identify the last empty row in the destination sheet using `Cells(Rows.Count, "[Column]").End(xlUp).Row + 1` and paste the mapped values there.

# Anti-Patterns
- Do not use `ActiveCell` on a Worksheet variable (e.g., `ws.ActiveCell`).
- Do not assume variable types; declare them explicitly.
- Do not hardcode sheet names or column letters unless explicitly provided as constants in the prompt.

## Triggers

- write vba to copy row to another sheet
- fix Method or data member not found ActiveCell
- vba macro to copy selection
- copy data from reminders to events vba

