2022年5月8日 星期日

VBA:作作亂數也可以當序號產生器玩玩

要產生亂數,在EXCEL中,可以用亂數的函數RND或RANDBETWEEN來產生,

在VBA中其實也可以依樣畫葫蘆作出亂數的效果。

來看看~~

例如想做一個"數字組合-英文字母-數字組合"的流水號(序號)

怎搞呢!!

EXCEL亂數函數RandBetween,可透過設定資料上下限來界定亂數資料範圍。

ASC碼則是可以透過數字控制要出現數字或英文字母。

CHR函數則是輸入ASC碼來產生資料。

程式碼:

A = WorksheetFunction.RandBetween(1, 9) & WorksheetFunction.RandBetween(1, 9) & "-" &   CHR(WorksheetFunction.RandBetween(65, 90)) & Chr(WorksheetFunction.RandBetween(65, 90)) & "-" &  Chr(WorksheetFunction.RandBetween(65, 90)) & Chr(WorksheetFunction.RandBetween(65, 90))

執行結果

如何不重複產生呢!!
就每次產生完再檢查一次已產生的,重複就再次產生即可









2022年5月7日 星期六

股票:集保庫存變化,400張合併分析(2022/05/06)

   僅供參考不作為投資理財規劃。





股票:外資投信持股變化(2022/05/6)

   僅供參考不作為投資理財規劃。




VBA:工作表 名字 命名 (SHEETS(XXX).NAME)

 簡單例子簡單分享

另外一篇教學中提到新增工作表

今天也會用到歐,但我們先來看看NAME這屬性,此一屬性可以透過等號(=)來取得跟設定歐

A=SHEETS(1).NAME

A變數中透過等號取得等號右手邊的第一張工作表的名稱屬性。

P.S SHEETS(1)表示第一張工作表的意思

相反:SHEETS(1).NAME=A

第一張工作表名稱設定為A變數的儲存結果(A可能儲存1 也可以是文字,但有符號會出現NAME屬性的物件錯誤)

透過儲存格方式命名工作表:

SHEETS(1).NAME=SHEETS(1).RANGE("A1")

執行此行後,即可以將A1儲存格的資料當作名稱用來重新寫入資料來重新設定NAME屬性了。

很簡單吧!!!


組合一下新增工作表的方法做應用

    sheets.Add AFTER:=sheets(sheets.Count)

    sheets(sheets.Count).Name = Sheets("工作表1").Range("F5")

先新增一張工作表到最後的位置,然後根據工作表1的F5儲存格用來重新命名最後一張工作表名稱。

簡單分享。



VBA:新增工作表、新增 X個工作表、控制新增工作表位置 ( Sheets.Add )

簡單例子

簡單分享

MSDN一下

工作表此一物件,用於新增工作表的方法為ADD

以下來簡單練習一下ADD這個方法,以及其參數如何設定

1.新增工作表:

以下例子會產生一張空白工作表到該工作簿內工作表的最後

做一個ACTIVEX 命令按鈕

Private Sub CommandButton1_Click()

    sheets.Add AFTER:=sheets(sheets.Count)

END SUB

2.延伸一下:

如何產生10張空白工作表呢!!!!

簡單,我們來組合迴圈做操作。

小編組合FOR迴圈做操作:

Private Sub CommandButton2_Click()

    For I = 1 To 10 Step 1

        Sheets.Add AFTER:=Sheets(sheets.Count)

    Next I

End Sub

FOR迴圈會重複執行10次!!!簡單八

3.控制新增工作表的位置

例子1內有AFTER參數,以及使用了sheets.Count這個屬性

試想想一下總工作表可以透過Count屬性取得,新增一張工作表在總工作表數量的之後,不就是

新增一張工作表到工作表的最後嗎?很抽象,想像一下。

我們來應用一下怎控制位置,透過BEFORE、AFTER

BEFORE:產生工作表在現有第一張工作表之前

Private Sub CommandButton3_Click()

    sheets.Add BEFORE:=sheets(1)

END SUB

BEFORE:產生工作表在現有第一張工作表之後

Private Sub CommandButton4_Click()

    sheets.Add AFTER:=sheets(1)

END SUB

SHHETS(1)表示位置1的工作表

如果你要產生一張工作表在第七張工作表之前或之後改改數字即可。

應用NAME屬性

試想,每一張工作表都要數位置,很累說,都知道名稱了,就透過名稱來取的位置八

可以透過INDEX跟ITEM屬性的組合作操作歐,這裡用到2個屬性,有點小難,但多練習就駕輕就熟了

sheets.Add BEFORE:=sheets.Item(Sheets("工作表5").Index)


簡單分享



2022年5月5日 星期四

巧合???? BDI 好棒棒

僅供參考不作為投資理財依據歐

BDI V.S 鐵礦石

巧合程度有多高?
可惜我最近都收不到鐵礦石原始資料不然可以做做分析。
BDI圖來自小弟BLOG分享的EXCEL
工具更新資料後的結果。



🍑 星座職場情緒價值走勢分析——《天庭年度績效大會》特別篇

🍑 星座職場情緒價值走勢分析 ——《天庭年度績效大會》特別篇 本篇文章純屬娛樂,如有雷同,純粹你同事剛好是那個猴。 🎬 開場:天庭尾牙變績效檢討大會 玉皇大帝龍心大悅,決定今年尾牙改辦「天庭年度情緒價值評鑑...