2023年7月31日 星期一

VBA:變數配置Set

 

Set:將值指定給物件型別的時候,必須使用「Set」

程式碼:
Set myRange=Range(“a1:b1”) ;指定儲存格a1:b1為 myRange物件型別
Set myactive=Activesheet.usedRange ;指定作業中工作表使用範圍為 myactive物件型別
Set myRange = ws.Cells.Find(what:=“test”) ;指定找尋字串為 myRange物件型別

Set myRange= Nothing ;指定為 myRange物件型別作釋放



變數的有效範圍及有效期限

變數的有效範圍及有效期限

程序層級變數的有效範圍


模組層級變數








VBA:工作表 屬性:COPY

第一種:

變數TEMP:存放要複製的工作表名稱

直接複製,會生成一頁一模一樣的工作表在獨立的工作簿當中

Private Sub CommandButton1_Click()

  TEMP = ActiveSheet.Range("f7")

  Sheets(TEMP).Copy

End Sub

第二種: 

針對TEMP作工作頁複製,並複製到最後一頁

sheets. Count:總工作表

變數TEMP:存放要複製的工作表名稱

AFTER:=:用來控制位置之後的位置

Private Sub CommandButton1_Click() 

   TEMP = ActiveSheet.Range("f7")

   Sheets(TEMP).Copy AFTER:=sheets.Item(sheets.Count)

End Sub

BEFORE:=:用來控制位置之前的位置

Private Sub CommandButton2_Click() 

     TEMP = ActiveSheet.Range("f7")

     Sheets(TEMP).Copy BEFORE:=Worksheets.Item(1)

End Sub


第三種:

        指定工作表,指定複製位置

Private Sub CommandButton3_Click()

     TEMP1 = ActiveSheet.Range("f7")

     TEMP2 = ActiveSheet.Range("f8")

     Sheets(TEMP1).Copy AFTER:=Worksheets.Item(Sheets(TEMP2).Index)

End Sub

Private Sub CommandButton4_Click() 

      TEMP1 = ActiveSheet.Range("f7")

      TEMP2 = ActiveSheet.Range("f8")

       Sheets(TEMP1).Copy BEFORE:=Worksheets.Item(Sheets(TEMP2).Index)

End Sub





VBA:簡單說說RANGE與CELLS 語法比較

ActiveSheet:目前正在使用中的工作表,name工作表的名稱屬性

cells、range儲存格物件

圖一個儲存格,不同的取得資料的方式

ActiveSheet.Name = ActiveSheet.Range("E4")

ActiveSheet.Name = ActiveSheet.cells(4,5)

透過e4儲存格來設定工作表的名稱
range直觀的透過文字方式來控制
cells則是透過座標系統的概念來控制,不過這座標是以a1儲存格作為起點歐(1,1)。


股票回顧歷史:合約負債 105/07~110/04


























































 

我的雷達:20240506

自己紀錄給自己看。 在大跌1400多點後,拉回中。 雷達顯示遠離風險區但離前一個底(大盤高點也不遠了)