㈠ 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編輯器,在這里,你可以插入一個用戶窗體,這個可能對沒有接觸過編程的人來說有些復雜,但功能確實比前一種方法要強勁得多了。
答題不易,互相理解,您的採納是我前進的動力。