㈠ 我在Excel中的宏閱讀一段VBA程序中,碰到一些語句,有點不是很懂,求解釋下,回答的詳細,另外還有加分。
第一句本意是獲得最後記錄行號,但語句中有錯誤,1 改為 l ,xlup 。
finalrow = [a1].CurrentRegion.Rows.Count 或 = [A65536].End(xlUp).Row 更簡潔。
第二句獲得一個地址,假設 finalrow 等於5,則 v1 等於 $C$6,即 a5 偏移 (1,2)位置,改用=cells(finalrow,1).offset(1,2)更易閱讀。另外v1應是變數,若是單元格,該用 [v1]
第三句,先假設 myrow 為1,mycolumn 為 1 ,則 set 一句定義變數 myrange 為 range("a1"),也可表示為[a1],下一句則為[a1]賦值為 $A$1,單元格a1顯示 $A$1
第四句本意似乎將a2及其周圍有數據區域設置綠色底色,但少了倆引號:
ActiveSheet.range("A2").CurrentRegion.Interior.ColorIndex=4
若a2是range變數則無錯。
第五句,變數f1賦值為lastcell的行號加3。同上若本意是為單元格 F1 賦值,應 [f1],或range("f1") ,另外建議程序中不要用類似單元格名稱的變數名。
最後一句,range變數a2向下偏移d行向右偏移1列的單元格賦值為變數 ac 的值 。若改為
range("a2").offset(d,1).value ,設 d = 3 ,則為單元格 b5 賦值。
㈡ 在EXCEL中。用VBA程序編寫:
不知道你是不是要放在工作表的change事件來處理這件事.所謂工作表的change事件就是當工作表的單元格內容發生變化後觸發這個事件.並自動執行相關代碼.
這是我按你的要求寫的放在工作表change事件里的代碼 因為不知道迴文的位置 所以我假定迴文是在A列.yes no 輸出在B列同行的單元格.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Dim FXstr
FXstr = StrReverse(Target.Value)
If FXstr = Target.Value Then
Target.Offset(0, 1) = "YES!"
Else
Target.Offset(0, 1) = "NO!"
End If
End If
End Sub
如果要用宏手動執行用下面的代碼 ,假設迴文在A1單元格
Sub 檢查迴文()
Dim FXstr
FXstr = StrReverse(Range("A1").Value)
If FXstr = Range("A1").Value Then
Range("A1").Offset(0, 1) = "YES!"
Else
Range("A1").Offset(0, 1) = "NO!"
End If
End Sub
㈢ 如何用EXCEL VBA編寫模糊查詢程序,並將結果顯示在工作表中
不難實現,但代碼就懶得寫了。
步驟:
1、利用INPUTBOX()獲得想查詢的內容,並存放到局部變數INPUTDATA 中
2、用DIM MYRANGE AS RANGE 和以下語句組合進行查找
Set MyRange = Sheets("工作表名稱").Cells.Find(what:=INPUTDATA, After:=ActiveCell, LookIn:=xlValues, lookat:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False)
3、用條件語句進行判斷是否找到或符合
If MyRange Is Nothing Then
MsgBox "沒找到符合條件的記錄!"
.....
else
找到的話,進行相應的單元格賦值操作
.....
endif
4、用將上述步驟嵌套到一個循環語句內,以便繼續查找。