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