我手头的问题是:我有一个包含多个工作表的Excel文件,它应该使用工作表A中的单元格填充工作表B中的单元格。我为此制作了一个小宏,但它只是不起作用这应该。要么完全不同的单元格,抛出和错误,要么复制公式而不是值。
细节是:
工作表A中的数据位于完整的列H中,并从第二行开始。这些单元格中的数据是来自不同领域的CONCATENATE。
循环应该从工作表A中的H2获取第一个值并将其放在工作表B,B1中。然后转到工作表A中的H3并将此值放在工作表B,C1等中。
它应该这样做直到工作表A列H中没有剩余值。
Sub Test2()
' Select the worksheet
Worksheets("A").Activate
' Select first cell with data
Range("H2").Select
' Loop until no data present
Do Until IsEmpty(ActiveCell)
' Helper Variable for startpoint in worksheet B
Dim i As Integer
i = 8
' Copy first value
Selection.Copy
' Go to different worksheet
Worksheets("B").Activate
' Select first data entry point
ActiveCell(1, i).Select
' Paste Data
Selection.Paste
' Move helper variable in next column
i = i + 1
' Return to worksheet A
Worksheets("A").Activate
' Select next row
ActiveCell.Offset(1, 0).Select
Loop
End Sub
答案 0 :(得分:0)
如果我使用这个静态代码,它适用于定义的范围
import os, os.path, time, re
with open("soru2bTest.txt", "r") as ins:
array = []
for line in ins:
array.append(line)
for e in array:
m = re.match("^(.*/)?(?:$|(.+?)(?:(\.[^.]*$)|$))",e)
if m :
print(e)
print("true")
print ("last modified: %s" % time.ctime(os.path.getmtime(e)))
看起来有点优雅,但我不知道如何制作它"灵活"这样做直到它来到一个空单元格。
我遇到的下一个问题现在是在工作表B中它应该用这个东西做一个矩阵。值在行1,列B和我之后有这个公式:
Sub Macro1()
Worksheets("A").Activate
Range("H2:H12").Select
Selection.Copy
Worksheets("B").Activate
Range("B1:H13").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
End Sub
现在这个公式应该扩展到添加数据的数量。
类似
=Table2[[#Headers];[Column1]]
等取决于添加值的数量。