我正在寻求所有excel VBA专家的帮助。
我已附上excel文件以供参考。
在“输入”表格中,有一个生产计划,将在提交按钮点击时生成。同样的时间表也必须在“输出”表中进行COPIED。但我无法将其粘贴到所需位置(蓝色突出显示区域)。
我要保留与年份相对应的相关数据并清除其余部分的另一个挑战。 这意味着假设它已有34年的时间,现在如果我再用20年生成它,它将把I级和II级的值保持到20年,并清除其余部分。
同样必须在输出表中。
有些人请尽早帮忙。
谢谢和问候,
桑托什
Submit_Click中的代码:
**Sub Submit_Click()
`enter code here`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**
答案 0 :(得分:0)
执行此操作的简便方法:
ActiveSheet.Rows("1:1").Copy
Sheets("Output").Paste
这是你要找的吗?
答案 1 :(得分:0)
我不确定你想要的位置是什么意思?它是OUTPUT工作表的第一列吗?我只是增强了你当前的代码。关于第二个挑战,我完全不明白你想要表达什么。也许您应该打印屏幕或发送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
答案 2 :(得分:0)
我遇到类似的问题,并找到了解决方案: Acyou可以直接使用此范围“B§”(我假设您当前的工作表设置为Sht)
Sht.Cells(3, 2).EntireRow.Copy 'or the other way in comments
'ActiveCell = Range("b3").Value
'ActiveCell.EntireRow.Copy
Sheets("Output")Range("A" & Rows.Count).PasteSpecial Paste:=xlValues