簡體   English   中英

在Excel中使用代號通過vba調用現有工作表

[英]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.Codenamews.Codenamews.Name

.Codename屬性僅包含最初創建工作表時的名字(很可能類似於“ Sheet32”),而不包含工作表的當前名稱。 可以改變,但最有可能將保持不變,除非你真的打算改變它。 然后,具有錯誤工作表名稱的公式將打開對話框,以嘗試查找該特定工作表的引用。

Excel的公式旨在與當前工作表名稱一起使用,而不是與codename一起使用 我可以看到的使用.Codename唯一有用的方法是,即使您要始終使用特定的工作表(在VBA內),即使工作表的名稱在某個時候(由您自己或用戶更改)也是如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM