首先道歉,如果已经解决了该主题或与之类似的问题。我试图用空白工作表旁边的其他工作表中包含的值填充空白工作表。
这是到目前为止我能想到的:
Private Sub Populate_Click()
Dim i As Integer, j As Integer
For i = 2 To 2614
For j = 1 To 6
If ActiveWorksheet.IsEmpty(Cells(i, j)) = True Then
If j = 1 Then
ActiveWorksheet.Cells(i, j).Value = Worksheets("Import").Cells(i, 1)
Else
If j = 2 Then
ActiveWorksheet.Cells(i, j).Value = Worksheets("Import").Cells(i, 8)
Else
If j = 3 Then
ActiveWorksheet.Cells(i, j).Value = Worksheets("Import").Cells(i, 2)
Else
If j = 4 Then
ActiveWorksheet.Cells(i, j).Value = Worksheets("Import").Cells(i, 5)
Else
If j = 5 Then
ActiveWorksheet.Cells(i, j).Value = Worksheets("Import").Cells(i, 9)
Else
If j = 6 Then
ActiveWorksheet.Cells(i, j).Value = Worksheets("Import").Cells(i, 6)
Else
End If
End If
End If
End If
End If
End If
End If
Next j
Next i
End Sub
当我单击excel工作表上的按钮时,它什么都不做。你们中的任何一个都能照耀为什么吗?
我使用许多IF语句的原因是,我一次只需要准备“导入”的特定列,以便可以按此特定顺序填充它们。
我对VBA的了解几乎没有(我今天才刚刚开始),对逻辑只有一点点的熟悉。所以我想我的意思是,请耐心等待。
谢谢!
答案 0 :(得分:3)
认为我们可以使用Select Case整理一下代码,而不用大量的Ifs。
请注意ActiveSheet
-最好指定一个名称,因为活动工作表可能与您期望的不一样。
Private Sub Populate_Click()
Dim i As Long, j As Long
For i = 2 To 2614
For j = 1 To 6
If IsEmpty(ActiveSheet.Cells(i, j)) Then
Select Case j
Case 1
ActiveSheet.Cells(i, j).Value = Worksheets("Import").Cells(i, 1)
Case 2
ActiveSheet.Cells(i, j).Value = Worksheets("Import").Cells(i, 8)
Case 3
ActiveSheet.Cells(i, j).Value = Worksheets("Import").Cells(i, 2)
Case 4
ActiveSheet.Cells(i, j).Value = Worksheets("Import").Cells(i, 5)
Case 5
ActiveSheet.Cells(i, j).Value = Worksheets("Import").Cells(i, 9)
Case 6
ActiveSheet.Cells(i, j).Value = Worksheets("Import").Cells(i, 6)
End Select
End If
Next j
Next i
End Sub