Vba 将数据从一张图纸复制到具有不同条件的不同图纸

Vba 将数据从一张图纸复制到具有不同条件的不同图纸,vba,excel,Vba,Excel,我有一个工作簿,其中有一张表格(“1001”、“1002”、“1003”…“1040”)和一张数据输入表(“输入数据”中有“日期”、“详情”和“金额”),可以转移到两张不同的选定表格中 我已经创建了一个宏,用于将数据从工作表(“输入数据”)传输到工作表(“1001”)和工作表(“1002”),但下次我需要将数据从工作表(“1003”)传输到工作表(“1040”)(从工作表(“输入数据”),为此我必须修改VBA代码中的SheetName 我需要VBA代码,用于此必要的修改,该代码可以输入到工作表(

我有一个工作簿,其中有一张表格(“1001”、“1002”、“1003”…“1040”)和一张数据输入表(“输入数据”中有“日期”、“详情”和“金额”),可以转移到两张不同的选定表格中

我已经创建了一个宏,用于将数据从工作表(“输入数据”)传输到工作表(“1001”)和工作表(“1002”),但下次我需要将数据从工作表(“1003”)传输到工作表(“1040”)(从工作表(“输入数据”),为此我必须修改VBA代码中的SheetName

我需要VBA代码,用于此必要的修改,该代码可以输入到工作表(“输入数据”),自动更改/修改我要传输数据的工作表名称(VBA代码)

在工作表中添加按钮(btnCopy)并添加此代码:

Private Sub btnCopy_Click()
   TransferToSheet
End Sub

Private Sub TransferToSheet()
   Dim numSheetOrigin As Integer
Do
    numSheetOrigin = AskForSheetNumber("Enter a sheet number for origin:")
Loop Until WorksheetExists(numSheetOrigin)

Dim numSheetDestiny As Integer
Do
    numSheetDestiny = AskForSheetNumber("Enter a sheet number for destiny:")
Loop Until WorksheetExists(numSheetDestiny)

Application.ScreenUpdating = False


Dim wsOrigin As Worksheet
Dim wsDestiny As Worksheet
Dim r As Long
Dim m As Long
Dim cel As Range
Set wsOrigin = Worksheets(CStr(numSheetOrigin))
Set wsDestiny = Worksheets(CStr(numSheetDestiny))

Dim intRows As Integer
'Get the row number of the last cell containing data in the sheet:
intRows = Sheets(CStr(numSheetOrigin)).UsedRange.Rows.Count

'"Date", "Particulars" and "Amount" are columns a, b and c
wsOrigin.Activate
wsOrigin.Range("a1:c" & intRows).Select
Selection.Copy
wsDestiny.Select
ActiveSheet.Paste


''Another way
'wsOrigin.Range("a1:c" & intRows).Copy
'wsDestiny.Range("a1:c" & intRows).End(xlUp).Offset(1).PasteSpecial xlPasteValues
'wsDestiny.Close True

Dim wsName As String
wsDestiny.Name = Application.InputBox("Insert the name for the destiny sheet:")

Application.ScreenUpdating = True
End Sub


Public Function AskForSheetNumber(ByVal strText As String) As Integer
   'We only want to ask for numbers (type 1)
   AskForSheetNumber = Application.InputBox(prompt:=strText, Type:=1)
End Function


Public Function WorksheetExists(ByVal WorksheetName As Integer) As Boolean
   On Error Resume Next
   WorksheetExists = (Sheets(CStr(WorksheetName)).Name <> "")
   On Error GoTo 0
End Function
Private Sub btnCopy\u Click()
转帐表
端接头
私人转帐表()
Dim numSheetOrigin作为整数
做
numSheetOrigin=AskForSheetNumber(“为原点输入图纸编号:”)
循环直到工作表列表(numSheetOrigin)
Dim numSheetDestiny作为整数
做
numSheetDestiny=AskForSheetNumber(“为destiny输入工作表编号:”)
循环直到工作表列表(numSheetDestiny)
Application.ScreenUpdating=False
将源文件设置为工作表
以工作表的形式显示数据
变暗,变长
我和你一样长
暗淡的cel As范围
设置wsOrigin=工作表(CStr(numSheetOrigin))
设置wsDestiny=工作表(CStr(numSheetDestiny))
Dim intRows作为整数
'获取工作表中包含数据的最后一个单元格的行号:
intRows=Sheets(CStr(numSheetOrigin)).UsedRange.Rows.Count
“日期”、“详情”和“金额”为a、b和c列
wsOrigin.Activate
wsOrigin.Range(“a1:c”和intRows)。选择
选择,复制
wsDestiny。选择
活动表。粘贴
“另一种方式
'wsOrigin.Range(“a1:c”和intRows).Copy
'wsdestine.Range(“a1:c”和intRows).End(xlUp).Offset(1).paste特殊xlpasteValue
“是的,接近真的
将wsName设置为字符串
wsDestiny.Name=Application.InputBox(“插入命运表的名称:”)
Application.ScreenUpdating=True
端接头
作为整数的公共函数AskForSheetNumber(ByVal strText作为字符串)
'我们只想询问数字(类型1)
AskForSheetNumber=Application.InputBox(提示:=strText,类型:=1)
端函数
公共函数工作表列表(ByVal工作表名称为整数)为布尔值
出错时继续下一步
工作表列表=(工作表(CStr(工作表名称)).Name“”)
错误转到0
端函数

欢迎来到StackOverflow。请分享您的代码/脚本,以便我们提供帮助