我正在努力弄清楚如何让代码完成我想要的东西,我尽可能多地写了我能在网上找到的内容,但是在某些方面,我不知道写什么。
代码的目的
在“电子表格2017”中查看每个名称旁边的数字“1”。如果存在“1”,则在另一个名为“日期模板”的工作簿中的一行中的多个单元格中输入值(与“电子表格2017”中的名称相同的行)
关于我希望它做什么的详细信息
这是代码的基本主干,将来我将寻求添加其他条件,例如D列中的1和C列中的1,所以也许一个案例函数可以更好地工作,然后它将来会更容易添加。我不知道哪个更好。
在下面的代码中,我只编写它来扫描B列中的姓氏,因为没有重复项。但是在将来,很可能会有姓氏相同的名字,在这种情况下,也必须读取名字。这是我对如何检查两者感到困惑的地方。
如果可以将名称列表复制到“日期模板”,则可以获得奖励,如果符合条件,则输入这些值。因为目前我手动将名称键入“日期模板”电子表格。
Sub Summary()
Dim wb1 As Workbook
Dim Sht As Worksheet
Dim Rng As Range
Dim wb2 As Workbook
Dim cell As Range
Dim ws As Worksheet
Set wb1 = Workbooks("Works template.xlsm")
Set wb2 = Workbooks("Spreadsheet 2017")
Set Sht = wb1.Worksheets("Template")
Set ws = wb2.Worksheets("January")
Set Rng = ws.Range("B7:B" & Sht.Cells(Sht.Rows.Count, "B").End(xlUp).Row)
For Each cell In Rng
If cell.Offset(0, 2).Value = "1" Then
Sht.Cells.Offset(0, 3).Value = "7.2" '<--- This is where I get the new error, "Application-defined or object-defined error"
Sht.Cells.Offset(0, 2).Value = "3.9"
Sht.Cells.Offset(0, 6).Value = "74.2"
End If
Next
End Sub
非常感谢!
答案 0 :(得分:1)
Sht.Cells
指的是工作表中的所有单元格,因此您无法在此处使用.Offset()
。
Sub Summary()
Dim wb1 As Workbook
Dim Sht As Worksheet
Dim Rng As Range
Dim wb2 As Workbook
Dim cell As Range
Dim ws As Worksheet
Set wb1 = Workbooks("Works template.xlsm")
Set wb2 = Workbooks("Spreadsheet 2017")
Set Sht = wb1.Worksheets("Template")
Set ws = wb2.Worksheets("January")
Set Rng = ws.Range("B7:B" & Sht.Cells(Sht.Rows.Count, "B").End(xlUp).Row)
For Each cell In Rng
If cell.Offset(0, 1).Value = "1" Then
sht.Range(cell.address).Offset(-2, 0).Offset(0, 0).Value = "7.2"
sht.Range(cell.address).Offset(-2, 0).Offset(0, 1).Value = "3.9"
sht.Range(cell.address).Offset(-2, 0).Offset(0, 2).Value = "74.2"
End If
Next
End Sub
答案 1 :(得分:0)
if self.new_line:
angle = random.randint(-45, 45)
direction_vector = pygame.math.Vector2(0, -self.VEL).rotate(angle)
self.deltax = direction_vector.x
self.deltay = direction_vector.y
同一个程序,我们如何返回不是列表而是使用密钥连接的日期
How do we remake the program to copy one value