【问题标题】:Input in different cells and different worksheets at the same time同时在不同的单元格和不同的工作表中输入
【发布时间】:2020-07-03 09:09:25
【问题描述】:

我正在尝试在 VBA 中创建一个函数,以从主工作表中的数据同时编译五个工作表。

主题是一些产品在一年中不同时间段的交付管理。主表格的单元格应包含五个数字,每个数字表示在给定日期要交付的产品数量。

输入数字,函数应将数字转录到 X 表中的 X 位置,将数字转录到 Y 表中的 Y 位置,依此类推。

在一般工作表中第一个单元格的坐标与其他工作表中的所有其他单元格相同的意义上,工作表是相同的。

因此,例如,如果您在单元格 E2 中输入 =delivery(1,2,3,4,5),则工作表 1 上的单元格 E2 将显示为 1,工作表 2 上的单元格 E2 将显示为 2... 最后,我应该显示该单元格中指定的交付总和 我写了以下代码,但它不起作用。

Public Function Delivery(delivery1 As Integer, delivery2 As Integer, delivery3 As Integer, delivery4 As Integer, delivery5 As Integer)
Set cell = Cells(ActiveCell.Row, ActiveCell.Column)

Worksheets("Sheet1").Activate
Range(cell).Value = delivery1

Worksheets("Sheet2").Activate
Range(cell).Value = delivery2

Worksheets("Sheet3").Activate
Range(cell).Value = delivery3

Worksheets("Sheet4").Activate
Range(cell).Value = delivery4

Worksheets("Sheet5").Activate
Range(cell).Value = delivery5

End Function

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    试试下面的代码

    Sub DistributeData()
    Dim Arr As Variant
    Dim i As Long, dRow As Long, dColumn As Long
    
        Arr = Split(Sheets("Sheet1").Range("E2"), ",")
        
        dRow = ActiveCell.Row
        dColumn = ActiveCell.Column
        
        For i = LBound(Arr) To UBound(Arr)
         Sheets("Sheet" & i + 1).Cells(dRow, dColumn) = Arr(i)
        Next
        
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-01
      • 1970-01-01
      • 2017-04-29
      • 2015-01-25
      • 1970-01-01
      • 2015-12-11
      • 1970-01-01
      • 2013-12-30
      相关资源
      最近更新 更多