Ⅰ 如何將vba中的計算結果值,雙擊後顯示計算公式
如果用你現在的代碼計算得到的值,不可能顯示公式。用VBA向單元格填寫公式才行:
Sub cal()
For i = 1 To 5
For j = 1 To 2
Cells(i, j + 2).FormulaR1C1 = "=RC[-2]+RC[-1]"
Next
Next
End Sub
簡單一點的:
Sub cal()
Range("C1:D5").FormulaR1C1 = "=RC[-2]+RC[-1]"
End Sub
得到相同的效果
Ⅱ excel VBA提取工作表中單元格公式內容
利用vba的自定義函數吧
在工作表界面作如下操作:
按Alt+F11->打開vixual basic編輯器
在打開的vixual basic編輯器窗口作如下操作:
標題欄->視圖->工程資源管理器(單擊打開)
插入-模塊(這時會插入一個名稱為「模塊1」的模塊)
右邊出現一大片空白區域
將下述代碼復制->粘貼進去:
Function Hasf(rng As Range)
If rng.HasFormula Then
Hasf = rng.Formula
Else
Hasf = ""
End If
End Function
'這樣在工作表界面就可以直接用函數hasf了,跟excel內置函數一樣使用
'如A2里有公式=IF(A1="","",A3+A4)
'那麼B2里輸入公式=hasf(A2) 確定即可
Ⅲ VBA公式解釋
這是一個畫任意多邊形的程序,寫程序的人已經標明了每個部分表示的動作了。我給你少位補充一下
OptionExplicit
DimlabelW#,labelH#,A(),l#,t#,w#,h#,m#,x#,i&,j&,temp&
Subtest()
'定義freeForm為多邊形對象,msg為你錄入的變狼
DimfreeFormAsFreeformBuilder,msg
'選擇,
msg=Application.InputBox("1曲線,2面積","選擇",2)
'如果msg不等於1或者2就退出程序
IfNot(msg="1"Ormsg="2")ThenEnd
'如果msg=1,那麼msg=1,否則msg=0
msg=IIf(msg="1",msg*1,msg-2)
'源和目的
'清理,具體代碼見clear過程,我估計應該是刪除表中的對象
Callclear
'選擇數據范圍A,A表示A1單元格周圍有數據的部分
A=Range("a1").CurrentRegion
'得到所選擇的區域在屏幕上的左,上,寬,高的像素點坐標
WithSelection
l=.Left:t=.Top:w=.Width:h=.Height
EndWith
'數據標簽的寬高
labelW=40
labelH=18
'水平軸,這個不知道是什麼程序,沒有代碼
CallhorizontalAxis
'垂直軸,這個不知道是什麼程序,沒有代碼
CallverticalAxis
'連接節點
Fori=2ToUBound(A)
temp=l
'1)首節點。A(i,2)/m*h的含義?當前數據/最大數據=當前選取/最大選取
'創建多邊形對象,並開始畫第一個點
SetfreeForm=ActiveSheet.Shapes.BuildFreeform(msoEditingAuto,temp,t+h-A(i,2)/m*h)
'2)其它節點
'接下來其他的點,循環所選擇的區域A的第2列
Forj=3ToUBound(A,2)
'temp加上一個固定值x,x沒有寫是多少
temp=temp+x
'畫其他的節點
freeForm.AddNodesmsg,msoEditingAuto,temp,t+h-A(i,j)/m*h
Nextj
'3)固定。帶!!的是面積
Ifmsg=0Then
freeForm.AddNodesmsg,msoEditingAuto,l+w,t+h'右下!!
freeForm.AddNodesmsg,msoEditingAuto,l,t+h'左下!!
freeForm.AddNodesmsg,msoEditingAuto,l,t+h-A(i,2)/m*h'起點!!
EndIf
'4)設置任意多邊形(Shape對象)
WithfreeForm.ConvertToShape
'隨機獲得顏色的RGB值temp
temp=RGB(100+Rnd*156,100+Rnd*156,100+Rnd*156)
'修改多邊形的線條顏色為temp
.Line.ForeColor.RGB=temp
』如果msg=0,即你輸入的是2
Ifmsg=0Then
'線條顏色和上面一樣
.Fill.ForeColor.RGB=temp'!!
'透明度60%
.Fill.Transparency=0.6'!!
EndIf
EndWith
'+圖例,這個同樣也不知道什麼什麼意思,沒有代碼
Calllegend(i,A(i,1),temp)
Nexti
'置於頂層
ActiveSheet.Shapes("horizontalAxis").ZOrdermsoBringToFront
ActiveSheet.Shapes("verticalAxis").ZOrdermsoBringToFront
EndSub
Ⅳ VBA 顯示公式的值的表達式
你好!
這個很容易,但是我想這不是你要的效果。
雙擊單元格,會顯示所有參與運算的單元格。
或者吧工具-選項-視圖中的公式打勾,效果相同,只是不用雙擊了。
再有工具-公式審核-追蹤引用單元格,也有類似效果。
希望對你有所幫助,望採納。
Ⅳ 怎麼查看excel的VBA代碼
按住ALT+F11彈出VBA編輯器。
只是要破解么?
新建一個Excel工作簿,Alt+F11 打開VBA編輯器,新建一個模塊 ,復制以下代碼,注意如提示變數未定義,則把Option Explicit行刪除即可,經測試已經通過.
'移除VBA編碼保護
Sub MoveProtect()
Dim FileName As String
FileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla),*.xls;*.xla", , "VBA破解")
If FileName = CStr(False) Then
Exit Sub
Else
VBAPassword FileName, False
End If
End Sub
'設置VBA編碼保護
Sub SetProtect()
Dim FileName As String
FileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla),*.xls;*.xla", , "VBA破解")
If FileName = CStr(False) Then
Exit Sub
Else
VBAPassword FileName, True
End If
End Sub
Private Function VBAPassword(FileName As String, Optional Protect As Boolean = False)
If Dir(FileName) = "" Then
Exit Function
Else
FileCopy FileName, FileName & ".bak"
End If
Dim GetData As String * 5
Open FileName For Binary As #1
Dim CMGs As Long
Dim DPBo As Long
For i = 1 To LOF(1)
Get #1, i, GetData
If GetData = "CMG=""" Then CMGs = i
If GetData = "[Host" Then DPBo = i - 2: Exit For
Next
If CMGs = 0 Then
MsgBox "請先對VBA編碼設置一個保護密碼...", 32, "提示"
Exit Function
End If
If Protect = False Then
Dim St As String * 2
Dim s20 As String * 1
'取得一個0D0A十六進制字串
Get #1, CMGs - 2, St
'取得一個20十六制字串
Get #1, DPBo + 16, s20
'替換加密部份機碼
For i = CMGs To DPBo Step 2
Put #1, i, St
Next
'加入不配對符號
If (DPBo - CMGs) Mod 2 <> 0 Then
Put #1, DPBo + 1, s20
End If
MsgBox "文件解密成功......", 32, "提示"
Else
Dim MMs As String * 5
MMs = "DPB="""
Put #1, CMGs, MMs
MsgBox "對文件特殊加密成功......", 32, "提示"
End If
Close #1
End Function
Ⅵ 怎麼查看excel的vba代碼
)對上的長長的編輯欄中就會顯示這些公式的。如果說的是VBA的代碼,可以右鍵點擊表的名稱....,在列標號(A、B、C.點中有函數公式的單元格後,選「查看代碼」
Ⅶ 求助如何用vba判斷某單元格是否帶公式
找到兩種方法,但是我想要得到這個單元格的具體公式.兩種方法:1。利用HasFormula屬性,可以判斷單元格內是否有公式。2。利用計算公式前面都有等號「=」這一性質來判斷。sub pd1()dim mrg as rangeset mrg = range("A1") '指定任意單元格if mrg.HasFormula =True Then MsgBox "單元格"& Mrg.Address & " 內有計算公式"Else MsgBox "單元格內沒有計算公式"end if end sub--------------------------------------------------------------------------------sub pd2()dim mrg as rangeset mrg = range("A1") '指定任意單元格if Left(mrg.HasFormula ,1)= "=" Then MsgBox "單元格"& Mrg.Address & " 內有計算公式"Else MsgBox "單元格內沒有計算公式"end if end sub