gpt4 book ai didi

vba - 使用以编程方式添加的宏从工作表写入另一个工作表

转载 作者:行者123 更新时间:2023-12-04 20:42:25 24 4
gpt4 key购买 nike

我实际上以编程方式创建工作表,并以编程方式添加带有与这些工作表关联的宏的按钮。我想要做的是,当我单击按钮时,包含该按钮的工作表的内容被复制到另一个工作表。

实际上有两件事让我感到困惑:首先我不明白我与按钮关联的宏是否位于(我的意思是其代码位于)创建工作表的文件中或创建的工作表本身中。

这是我创建的用于添加带有关联宏的按钮的代码:

 With newWorkBook.Worksheets(1).Buttons
.Add 350, 75, 173.25, 41.25
.OnAction = "'" & ThisWorkbook.FullName & "'!export_Click"
.Caption = "Exporter la fiche"
End With

newWorkBook.Worksheets("Feuil1").Name = "Valeurs"
checkPVC_Click Sub 位于用于生成工作表的 Excel 文件中的一个模块中。

其次 ,在应该将工作表的内容复制到另一个的宏中,我不知道如何以不同的方式引用代码中的两个工作表(源和目标)。

在下面的代码中:
Dim newWorkBook As Workbook
Dim createdSheetColumnsTab(100) As String
Dim col As Integer
col = Cells(1, 8).Value

Set newWorkBook1 = Workbooks.Add

newWorkBook1.Worksheets("Feuil1").Cells(1, 1).Value = "Stat"

newWorkBook1.Worksheets("Feuil1").Cells(2, 1) = ActiveWorkbook.Worksheets("Valeurs").Cells(12, 1)

col = Cells(1, 8).Value 行中我访问要复制的工作表的内容,并在 newWorkBook1.Worksheets("Feuil1").Cells(1, 1).Value = "Stat" 行中我访问了“目标”工作表的内容,但我不知道如何在以下代码中引用第一个工作表的内容以复制内容。

我希望我很清楚,如有必要,我可以增加更多的精确度,对不起,我不掌握英语,所以我很难解释这个问题。

最佳答案

您可以离开Sub checkPVC_Click在原始工作簿中。只需确保您提供包含该宏的文件的完整路径和名称。例如。请确保运行此宏的文件至少保存一次。

Sub Sample()
Dim NewWorkbook As Workbook

Set NewWorkbook = Workbooks.Add

With NewWorkbook.Worksheets(1).Buttons
.Add 350, 15, 173.25, 41.25
.OnAction = "'" & ThisWorkbook.FullName & "'!checkPVC_Click"
End With
End Sub

Sub checkPVC_Click()
MsgBox "a"
End Sub

关于您的第二个问题,您需要完全限定 Cells对象,以便它知道您指的是哪些单元格
ThisWorkbook将引用工作簿中托管代码的单元格。
Activeworkbook将引用当前处于事件状态的工作簿中的单元格。

编辑 : 评论跟进。这是你正在尝试的吗?
Sub Sample()
Dim newWorkBook As Workbook
Dim ws As Worksheet

Set newWorkBook = Workbooks.Add
Set ws = newWorkBook.Sheets(1)
ws.Name = "Valeurs"

With ws.Buttons
.Add 350, 15, 173.25, 41.25
.OnAction = "'" & ThisWorkbook.FullName & "'!checkPVC_Click"
End With
End Sub

Sub checkPVC_Click()
Dim OldWorkbook As Workbook, newWorkBook As Workbook
Dim createdSheetColumnsTab(100) As String

Set OldWorkbook = ActiveWorkbook

Set newWorkBook1 = Workbooks.Add

newWorkBook1.Worksheets("Feuil1").Cells(1, 1).Value = "Stat"

newWorkBook1.Worksheets("Feuil1").Cells(2, 1) = OldWorkbook.Worksheets("Valeurs").Cells(12, 1)
End Sub

关于vba - 使用以编程方式添加的宏从工作表写入另一个工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30344335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com