[英]Calling an existing worksheet with vba by using its code name in excel
我試圖將單元格的公式設置為if公式,該公式使用工作簿中已經存在的工作表中的數據。 但是,每當嘗試引用工作表時,我都會打開一個文件對話框,以尋找工作表的路徑。 在下面,您將找到我的代碼,該代碼循環遍歷工作簿中的所有現有工作表,並在找到匹配項時將其與工作表名稱進行比較,以存儲當前和之前幾周的工作表代碼名稱。 一旦有了這些,我就有一個if語句嘗試訪問這些表並比較值。 至此,我得到了文件對話框。 任何想法或建議,將不勝感激。 謝謝。 抱歉格式化問題,我會盡快糾正。
sheetName = CStr(Year(Now)) & " eDR FW" & CStr(Format(Date, "ww")) & "_2"
lastWeekName = CStr(Year(Now)) & " eDR FW" & CStr(Format(Date, "ww") - 1) & "_2"
For Each ws In ActiveWorkbook.Worksheets
If ws.Name = sheetName Then
sheetName = ws.CodeName
ElseIf ws.Name = lastWeekName Then
lastWeekName = ws.CodeName
End If
Next
rowRange = colLetter & "2:" & colLetter & CStr(sheetRowCount)
lineofBalance = "=IFERROR(IF(INDEX('" & lastWeekName & "'!$A$2:$W$10000,MATCH(A2,'" & sheetName & "'!$A$2:$A$10000,0),6)=F2,F2,CONCATENATE(""Updated: ""&F2)),CONCATENATE(""New: ""&F2))"
完成此工作所需要做的就是將ws.Codename
都ws.Codename
為ws.Name
。
.Codename
屬性僅包含最初創建工作表時的名字(很可能類似於“ Sheet32”),而不包含工作表的當前名稱。 它可以改變,但最有可能將保持不變,除非你真的打算改變它。 然后,具有錯誤工作表名稱的公式將打開對話框,以嘗試查找該特定工作表的引用。
Excel的公式旨在與當前工作表名稱一起使用,而不是與codename一起使用 。 我可以看到的使用.Codename
唯一有用的方法是,即使您要始終使用特定的工作表(在VBA內),即使工作表的名稱在某個時候(由您自己或用戶更改)也是如此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.