簡體   English   中英

(Excel VBA)-從宏中的單元格文本繪制

[英](Excel VBA) - Draw from cell text in a macro

我正在嘗試構建一個小的宏,該宏允許用戶一次格式化多個不同的文檔。

我希望用戶能夠在包含宏的文檔中的特定單元格中輸入特定文本。

然后,我希望在影響另一個文檔的同時,可以在宏中繪制此文本。

例如,添加另一列的代碼可能會說

Worksheets(1).Range("A1").EntireColumn.Insert

我不想指定列(A),而是希望它使用宿主文檔中的值。 例如,用戶在特定的單元格中鍵入“ G”,然后單擊一個按鈕以運行該宏,該宏將根據宿主文檔中的值動態地知道要影響其定位的所有excel文檔中的G列。

我希望這是有道理的。

對於實現這項功能我應該考慮的各種功能有什么建議嗎?

“對我應該考慮的功能有什么建議嗎?” 幾個...

要獲取輸入的值...

如果單元格始終位於同一地址,請說A1:

' Define a string variable and set it equal to value in A1
Dim cellText as String
cellText = ThisWorkbook.ActiveSheet.Range("A1").Value

或者代替使用Range ,也可以使用帶有行和列號的Cells

cellText = ThisWorkbook.ActiveSheet.Cells(1, 1).Value

如果單元格發生更改,則可能需要查看“ Find功能以在輸入單元格旁邊Find標簽/標題。 然后,您可以使用它(輕松使用Cells )來引用輸入...

有了此變量后,就可以使用它進行操作。

要將此值放入另一個(打開的)工作簿“ MyWorkbook”和名為“ MySheet”的工作表的單元格B3中,可以執行以下操作:

Application.Workbooks("MyWorkbook").Sheets("MySheet").Range("B3").Value = cellText

要在cellText處插入一列,請執行

Application.Workbooks("MyWorkbook").Sheets("MySheet").Range(cellText & "1").EntireColumn.Insert

值得注意的是, &將字符串組合在一起,因此,如果

cellText="B"

然后

cellText & "1" = "B1"

關於您關於在工作表之間移動值的評論,請參閱我的第一個示例,但始終參考同一工作簿。 如果您發現自己反復鍵入類似ThisWorkbook.Sheets("MySheet").<other stuff>

那么您可以使用With速記。

With ThisWorkbook.Sheets("MySheet")

    ' Starting anything with a dot "." now assumes the with statement first
    .Range("A1").Value = .Range("A2").Value
    .Range("B1").Value = .Range("B2").Value

End With

需要注意的重要一點是,此代碼在使用之前沒有數據驗證來檢查單元格的值! 簡單地嘗試根據可能是任何值的值插入一列,肯定會使宏在其第一次實際使用中崩潰!

暫無
暫無

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

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