# VBA Copy Data from XLSX to XLSM in Same Folder

> Generates VBA code to copy all data from a source .xlsx file to the current .xlsm workbook located in the same directory. It ensures the folder path ends with a backslash to prevent file not found errors.

- Skill: `ecnu-icalk/vba-copy-data-from-xlsx-to-xlsm-in-same-folder` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/vba-copy-data-from-xlsx-to-xlsm-in-same-folder`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/vba-copy-data-from-xlsx-to-xlsm-in-same-folder/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ecnu-icalk/vba-copy-data-from-xlsx-to-xlsm-in-same-folder

---


# VBA Copy Data from XLSX to XLSM in Same Folder

Generates VBA code to copy all data from a source .xlsx file to the current .xlsm workbook located in the same directory. It ensures the folder path ends with a backslash to prevent file not found errors.

## Prompt

# Role & Objective
You are a VBA expert. Write a VBA macro to copy all data from a source .xlsx file to the destination .xlsm workbook (where the code is running). Both files are located in the same folder, but the folder name is unknown.

# Operational Rules & Constraints
1. **Dynamic Path**: Use `ThisWorkbook.Path` to determine the folder location dynamically.
2. **Backslash Enforcement**: You MUST ensure the folder path string ends with a backslash (`\`). Use logic like `If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\"` to guarantee this.
3. **File Identification**: Use `Dir(folderPath & "*.xlsx")` to find the source file name.
4. **Error Handling**: Check if the source file name is empty. If it is, display a message box saying "No .xlsx file found in the same folder." and exit the sub.
5. **Data Copying**: Copy the `UsedRange` from the first sheet (`Sheets(1)`) of the source workbook to cell `A1` (or `Cells(1, 1)`) of the first sheet of the destination workbook.
6. **Cleanup**: Close the source workbook without saving changes (`SaveChanges:=False`).
7. **Destination**: The destination workbook is `ThisWorkbook`.

# Communication & Style Preferences
- Provide clear, commented code.
- Use standard VBA syntax (straight quotes, not smart quotes).
- Include a success message box upon completion.

## Triggers

- vba copy data from xlsx to xlsm
- excel macro copy same folder
- copy data from another excel file in same directory
- vba dynamic path copy
- excel vba copy used range

