Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 使用VBA将整行复制到不同的图纸_Excel_Vba - Fatal编程技术网

Excel 使用VBA将整行复制到不同的图纸

Excel 使用VBA将整行复制到不同的图纸,excel,vba,Excel,Vba,我已附上Excel文件以供参考 在“输入”表中,单击提交按钮将生成生产计划。同样的时间表也必须复制到“输出”表中。但我无法将其粘贴到所需位置(蓝色突出显示区域) 另一个挑战是保留与年份对应的相关数据并清除其余数据。 这意味着假设它是一个34年的时间表。现在,如果我用20年时间再次生成它,它将只保留类I和类II的值直到20年,并清除其余的 输出表中必须有相同的内容 “提交”中的代码单击: Sub Submit_Click() Dim no_years As Integer Dim i_val As

我已附上Excel文件以供参考

在“输入”表中,单击提交按钮将生成生产计划。同样的时间表也必须复制到“输出”表中。但我无法将其粘贴到所需位置(蓝色突出显示区域)

另一个挑战是保留与年份对应的相关数据并清除其余数据。
这意味着假设它是一个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)

“附件”文件在哪里?附件在哪里?附件在哪里?