我有一本有三个电子表格的工作簿。
Sheet 1、Sheet 2和Sheet 3通过唯一标识符链接在一起。
Sheet 1只能有每个唯一标识符的1个示例;然而,表2和表3可以具有多个示例。
假设唯一ID从表1 A2开始:A541。我想旁边的一列(B2:B541),当一个数字输入它的副本,唯一的ID sheet 2在列A的次数指定。
Sheet1 Column A
ID
2023_0001
2023_0002
2023_0003
Sheet1 Column B
Copy_to_Sheet2
2
3
2
Sheet1 Column C
Copy_to_Sheet3
3
2
2
这将把ID 2023_0001复制2次到Sheet 2作为新行,复制3次到Sheet 3
这可能吗?
我对VBA语法不是很熟悉,但我尝试过Google的一些其他解决方案。我只是不知道如何调整它们以适应我的需要。这一个工作,但我不想担心提示。我在尽量让我的员工轻松点。
Sub CopyData()
Updateby Extendoffice
Dim Rng As Range
Dim InputRng As Range, OutRng As Range
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set OutRng = OutRng.Range("A1")
For Each Rng In InputRng.Rows
xValue = Rng.Range("A1").Value
xNum = Rng.Range("B1").Value
OutRng.Resize(xNum, 1).Value = xValue
Set OutRng = OutRng.Offset(xNum, 0)
Next
End Sub
1条答案
按热度按时间6jjcrrmo1#
如果不需要提示,可以将代码作为Worksheet_Change事件,而不是编写单独的模块。就像这样:
你需要把它放在微软Excel对象的“Sheet1”中,而不是一个模块,但这样它就可以像人们添加到B列和C列一样工作。我假设A列中的值在B或C之前