programing

VBA 코드를 사용하여 데이터 복사 및 붙여넣기

newsource 2023. 8. 23. 21:50

VBA 코드를 사용하여 데이터 복사 및 붙여넣기

스프레드시트에 버튼이 있는데, 이 버튼을 누르면 사용자가 파일을 열고 스프레드시트 "데이터"의 열 A-G를 복사한 다음 현재 시트에 해당 열에서 데이터를 붙여넣을 수 있습니다.

코드에 논리 오류가 있습니다. 실행되지만 선택 항목을 잘못된 위치에 붙여넣습니다.

저는 두 권의 문제집을 참조하는 데 어려움을 겪고 있습니다.

내 코드는 다음과 같습니다.

Sub Button1_Click()
    Dim excel As excel.Application
    Dim wb As excel.Workbook
    Dim sht As excel.Worksheet
    Dim f As Object

    Set f = Application.FileDialog(3)
    f.AllowMultiSelect = False
    f.Show

    Set excel = CreateObject("excel.Application")
    Set wb = excel.Workbooks.Open(f.SelectedItems(1))
    Set sht = wb.Worksheets("Data")

    sht.Activate
    sht.Columns("A:G").Select
    Selection.Copy
    Range("A1").Select
    ActiveSheet.Paste

    wb.Close
End Sub

특수 붙여넣기 방법을 사용합니다.

sht.Columns("A:G").Copy
Range("A1").PasteSpecial Paste:=xlPasteValues

하지만 ActiveSheet를 "데이터"로 변경하고 다시 변경하지 않는 것이 큰 문제입니다.내 코드에 따라 활성화 및 선택을 수행할 필요가 없습니다(이는 복사하려는 시트에 단추가 있다고 가정함).

그래서 나는 이 토론에서 이것이 그때 코드가 되어야 한다고 생각하고 있습니다.

Sub Button1_Click()
    Dim excel As excel.Application
    Dim wb As excel.Workbook
    Dim sht As excel.Worksheet
    Dim f As Object

    Set f = Application.FileDialog(3)
    f.AllowMultiSelect = False
    f.Show

    Set excel = CreateObject("excel.Application")
    Set wb = excel.Workbooks.Open(f.SelectedItems(1))
    Set sht = wb.Worksheets("Data")

    sht.Activate
    sht.Columns("A:G").Copy
    Range("A1").PasteSpecial Paste:=xlPasteValues


    wb.Close
End Sub

이것이 맞거나 한 단계를 놓쳤는지 알려주십시오.고마워.

언급URL : https://stackoverflow.com/questions/6778759/copying-and-pasting-data-using-vba-code