用VBA编写,提取表中A列单元格为DataName、B列单元格为Vd和C列单元格为 Vg的下一行所有数据,存入新的表格。
时间: 2024-03-26 07:42:01 浏览: 73
Excel-VBA宏编程实例源代码-数据的导入导出-将即存表保存为CSV文档.zip
好的,下面是提取表中A列单元格为DataName、B列单元格为Vd和C列单元格为Vg的下一行所有数据并存入新的表格的VBA代码:
```vb
Sub ExtractData()
'定义变量
Dim srcData As Worksheet
Dim destData As Worksheet
Dim lastRow As Long
Dim i As Long
Dim dataName As String
Dim vd As String
Dim vg As String
'获取源数据表
Set srcData = ThisWorkbook.Worksheets("Sheet1")
'创建新表
Set destData = ThisWorkbook.Worksheets.Add
'设置新表标题
destData.Range("A1").Value = "DataName"
destData.Range("B1").Value = "Vd"
destData.Range("C1").Value = "Vg"
destData.Range("D1").Value = "Data1"
destData.Range("E1").Value = "Data2"
destData.Range("F1").Value = "Data3"
'获取源数据最后一行
lastRow = srcData.Cells(srcData.Rows.Count, 1).End(xlUp).Row
'从第二行开始遍历源数据
For i = 2 To lastRow
'获取当前行的DataName、Vd和Vg值
dataName = srcData.Cells(i, 1).Value
vd = srcData.Cells(i, 2).Value
vg = srcData.Cells(i, 3).Value
'如果DataName、Vd和Vg值不为空,则将它们及下一行数据存储到新表中
If dataName <> "" And vd <> "" And vg <> "" Then
destData.Cells(destData.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = dataName
destData.Cells(destData.Rows.Count, 2).End(xlUp).Offset(1, 0).Value = vd
destData.Cells(destData.Rows.Count, 3).End(xlUp).Offset(1, 0).Value = vg
destData.Cells(destData.Rows.Count, 4).End(xlUp).Offset(1, 0).Value = srcData.Cells(i, 4).Value
destData.Cells(destData.Rows.Count, 5).End(xlUp).Offset(1, 0).Value = srcData.Cells(i, 5).Value
destData.Cells(destData.Rows.Count, 6).End(xlUp).Offset(1, 0).Value = srcData.Cells(i, 6).Value
End If
Next i
End Sub
```
这个代码同样从名为"Sheet1"的工作表中获取数据,并将提取的数据存储到新的工作表中。它遍历表中的每一行,并将A列单元格为DataName、B列单元格为Vd和C列单元格为Vg的下一行所有数据存储到新的表格中。
你可以将这个代码复制到VBA编辑器中,然后使用Alt + F8快捷键来运行它。请确保在运行代码之前打开源数据表并选中名为"Sheet1"的工作表。如果你的表中的工作表名称不同,请将代码中的"Sheet1"替换为相应的名称。
阅读全文