我在工作中遇到问题。
我的excel中有一百多个工作表,我想从每个位置(I25:K25,I50:K50,I95:K95)的某个位置提取值以及每个工作表的旁边的工作表名称。
我想将这些提取的值粘贴到新的工作表上。
有人知道我可以使用任何Excel公式或Excel宏来实现目标吗?
答案 0 :(得分:0)
我对公式不熟练,但是使用VBA肯定可以。
查看For Each..Next
循环,我认为您应该使用它遍历所有工作表。
接下来,.Name
属性将为您提取工作表的名称。您可以将其保存到变量中,并用填充单元格。
从一个单元格到另一个单元格获取值就像
一样容易.Sheets(1).Range("A1:B1").Value = .Sheets(2).Range("A1:B1").Value
请注意,SO不是免费的代码编写服务,因此我不会为您编写整个过程。如果您有一些代码但遇到问题,请返回给我们。
有用的链接:
答案 1 :(得分:0)
此代码循环所有表,除了称为结果的表,A列中的代码表名称和B:D列中的范围值。
Option Explicit
Sub test()
Dim ws As Worksheet, wsResults As Worksheet
Dim Lastrow As Long
With ThisWorkbook
Set wsResults = .Worksheets("Results")
For Each ws In .Worksheets
If ws.Name <> "Results" Then
Lastrow = wsResults.Cells(wsResults.Rows.Count, "A").End(xlUp).Row
wsResults.Range("A" & Lastrow + 1 & ":A" & Lastrow + 3).Value = ws.Name
ws.Range("I25:K25").Copy wsResults.Range("B" & Lastrow + 1)
ws.Range("I50:K50").Copy wsResults.Range("B" & Lastrow + 2)
ws.Range("I95:K95").Copy wsResults.Range("B" & Lastrow + 3)
End If
Next ws
End With
End Sub
答案 2 :(得分:0)
char *ft_strrev (char *str)
{
int i = 0, j = 0;
while (str [j] != '\0') j++;
while (i < --j) {
char t = str [i];
str [i++] = str [j];
str [j] = t;
}
return str;
}
)部分中的值以适合您的
需求。Const
,但只会从所有其他工作表中读取。然后它将
创建一个以cTarget
命名的工作表,并将读取的数据写入其中。cTarget
标签,然后单击Developer
,然后
点击Macros
。RangesToNewMasterWorksheet