Excel 使用VBA将整行复制到不同的图纸
我已附上Excel文件以供参考 在“输入”表中,单击提交按钮将生成生产计划。同样的时间表也必须复制到“输出”表中。但我无法将其粘贴到所需位置(蓝色突出显示区域) 另一个挑战是保留与年份对应的相关数据并清除其余数据。Excel 使用VBA将整行复制到不同的图纸,excel,vba,Excel,Vba,我已附上Excel文件以供参考 在“输入”表中,单击提交按钮将生成生产计划。同样的时间表也必须复制到“输出”表中。但我无法将其粘贴到所需位置(蓝色突出显示区域) 另一个挑战是保留与年份对应的相关数据并清除其余数据。 这意味着假设它是一个34年的时间表。现在,如果我用20年时间再次生成它,它将只保留类I和类II的值直到20年,并清除其余的 输出表中必须有相同的内容 “提交”中的代码单击: Sub Submit_Click() Dim no_years As Integer Dim i_val As
这意味着假设它是一个34年的时间表。现在,如果我用20年时间再次生成它,它将只保留类I和类II的值直到20年,并清除其余的 输出表中必须有相同的内容 “提交”中的代码单击:
Sub Submit_Click()
Dim no_years As Integer
Dim i_val As Integer
Range("c10").Activate
ActiveCell.EntireRow.Clear
ActiveCell = Range("b3").Value
no_years = Range("b4").Value
i_val = Range("b5").Value
Do While no_years > 0
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = DateAdd("YYYY", i_val, ActiveCell.Offset(0, -1).Value)
no_years = no_years - 1
Loop
' copy production schedule calender to all sheets
ActiveCell.EntireRow.Copy Destination:=Sheets("Output").Range("A" & Rows.Count).End(xlUp).Offset(1)
MsgBox ("Production schedule calendar generated")
End Sub
要做到这一点,最简单的方法是:
ActiveSheet.Rows("1:1").Copy
Sheets("Output").Paste
这就是你想要的吗?最简单的方法是:
ActiveSheet.Rows("1:1").Copy
Sheets("Output").Paste
这就是你要找的地方吗?我不知道你想要的地方是什么?它是输出工作表的第一列吗?我刚刚增强了你当前的代码。关于第二个挑战,我完全不明白你想表达什么。也许你应该打印屏幕或发送excel文件给我,以便我可以查看它
Option Explicit
Dim CurrentWorkbook As Workbook
Dim InputWorksheet As Worksheet
Dim OutputWorksheet As Worksheet
Sub Submit_Click()
Set CurrentWorkbook = Workbooks(ActiveWorkbook.Name)
Set InputWorksheet = CurrentWorkbook.Sheets("Input")
Set OutputWorksheet = CurrentWorkbook.Sheets("Output")
Dim NumberOfYear As Long
Dim IntervalOfYear As Long
Dim ColumShift As Long
ColumShift = 1
InputWorksheet.Range("c10").EntireRow.Clear
InputWorksheet.Range("c10").Value = InputWorksheet.Range("B3").Value
NumberOfYear = InputWorksheet.Range("b4").Value
IntervalOfYear = InputWorksheet.Range("b5").Value
Do While NumberOfYear > 0
InputWorksheet.Range("c10").Offset(0, ColumShift).Value = DateAdd("YYYY", IntervalOfYear, InputWorksheet.Range("c10").Value)
NumberOfYear = NumberOfYear - 1
ColumShift = ColumShift + 1
Loop
' copy production schedule calender to all sheets
ActiveCell.EntireRow.Copy Destination:=Sheets("Output").Range("A" & Rows.Count).End(xlUp).Offset(1)
MsgBox ("Production schedule calendar generated")
End Sub
我不确定你想要的位置是什么?它是输出工作表的第一列吗?我刚刚增强了你当前的代码。关于第二个挑战,我完全不明白你想表达什么。也许你应该打印屏幕或发送excel文件给我,以便我可以查看它
Option Explicit
Dim CurrentWorkbook As Workbook
Dim InputWorksheet As Worksheet
Dim OutputWorksheet As Worksheet
Sub Submit_Click()
Set CurrentWorkbook = Workbooks(ActiveWorkbook.Name)
Set InputWorksheet = CurrentWorkbook.Sheets("Input")
Set OutputWorksheet = CurrentWorkbook.Sheets("Output")
Dim NumberOfYear As Long
Dim IntervalOfYear As Long
Dim ColumShift As Long
ColumShift = 1
InputWorksheet.Range("c10").EntireRow.Clear
InputWorksheet.Range("c10").Value = InputWorksheet.Range("B3").Value
NumberOfYear = InputWorksheet.Range("b4").Value
IntervalOfYear = InputWorksheet.Range("b5").Value
Do While NumberOfYear > 0
InputWorksheet.Range("c10").Offset(0, ColumShift).Value = DateAdd("YYYY", IntervalOfYear, InputWorksheet.Range("c10").Value)
NumberOfYear = NumberOfYear - 1
ColumShift = ColumShift + 1
Loop
' copy production schedule calender to all sheets
ActiveCell.EntireRow.Copy Destination:=Sheets("Output").Range("A" & Rows.Count).End(xlUp).Offset(1)
MsgBox ("Production schedule calendar generated")
End Sub
我遇到了类似的问题,并找到了如下解决方案: A您可以直接使用此范围“B§”作为(我假设您当前的工作表设置为Sht)
我遇到了类似的问题,并找到了如下解决方案: A您可以直接使用此范围“B§”作为(我假设您当前的工作表设置为Sht) “附件”文件在哪里?附件在哪里?附件在哪里?