㈠ EXCEL中VBA或者函数怎么自动插入新数据
根据你图一数据及要求写了一段代码,看是不是满足要求:
1、运行前请备份原始数据表,切记!
2、为了便于检查,会自动在相关单元格写入公式。
3、代码直接放到图一的“水准测量记录”表的代码页中,如果写在模块中,请自行修改代码。代码运行后会生成图二的样子,只能运行一次,再次运行时必须保证数据格式是图一(原表)的格式。由于有几个数据是随机数,多次测试结果会不同。
4、默认图一E列是已知数据。
Sub 插入数据()
Dim i As Long
Dim k As Long
Dim n As Long
n = 8
k = 10
With ActiveSheet
For i = 11 To 65536
If .Cells(k, 4).Value - .Cells(i, 5).Value >= 0.2 And .Cells(k, 4).Value - .Cells(i, 5).Value <= 4.8 Then
.Range("C" & i) = "=$D$" & k & "-E" & i
Else
If .Cells(k, 4).Value - .Cells(i, 5).Value >= 4.8 Then
.Rows(i).Insert Shift:=xlDown
.Range("A" & i) = "ZD" & n + 1
.Range("C" & i) = "=Round(rand() * (4.8 - 4.2) + 4.2, 3)"
.Range("E" & i) = "=$D$" & k & "-C" & i
.Rows(i + 1).Insert Shift:=xlDown
.Range("B" & i + 1) = "=Round(rand() * (0.5 - 0.2) + 0.2, 3)"
.Range("D" & i + 1) = "=E" & i & "+B" & i + 1
ElseIf .Cells(k, 4).Value - .Cells(i, 5).Value <= 0.2 Then
.Rows(i).Insert Shift:=xlDown
.Range("A" & i) = "ZD" & n + 1
.Range("C" & i) = "=Round(rand() * (0.5 - 0.2) + 0.2, 3)"
.Range("E" & i) = "=$D$" & k & "-C" & i
.Rows(i + 1).Insert Shift:=xlDown
.Range("B" & i + 1) = "=Round(rand() * (4.8 - 4.2) + 4.2, 3)"
.Range("D" & i + 1) = "=E" & i & "+B" & i + 1
End If
k = i + 1
n = n + 1
i = i + 1
End If
If .Range("E" & i + 1) = "" Then Exit For
Next i
End With
End Sub
㈡ 如何在vba建立窗口来实现录入数据
有两种方法可以建立窗口来实现录入数据。
一种是选择你要录入数据的区域,再通过菜单“工具”->“记录单”,EXCEL就会弹出一个数据录入窗体。
第二种方法是按“ALT+F11”进入VBA编辑器,在这里,你可以插入一个用户窗体,这个可能对没有接触过编程的人来说有些复杂,但功能确实比前一种方法要强劲得多了。
答题不易,互相理解,您的采纳是我前进的动力。