Anywhere you go, let me go too

關於部落格
對人海闊天空,做事仔細周密
  • 31752

    累積人氣

  • 2

    今日人氣

    0

    訂閱人氣

解決基金排序經常異動....

 首先我重新調整我投資清單項目標示方法 , 如下所示:

後面則是要直接去抓參照的那個sheet中的基金名稱(只要足以可以判別區分即可)
如下所示 : 上例的JF就是準備要去取JF_Web_..的sheet,中間以"_"為分隔符號

由VBA開發平台可以看出每個sheet 名稱
 

增加一個執行Button

接著就可開始撰寫程式 , 簡單的說,就是先掃所有投資的清單, 逐一猜解基金名稱,依前半段基金名稱判斷是否要進行淨值確認作業
依判斷去不同的sheet取淨值,程式如下: 以JF為例:

'JF境內 基金
Function getJF_InFindFundValue(sRealFundName As String, iNowRow As Integer)
 
On Error Resume Next
    
    Dim readnowRange As Range
    Dim returnFundValue As Double
    Dim readAllFundName As Range
    Dim sField As String
    
    '官方 https://msdn.microsoft.com/zh-tw/library/ff839746.aspx
    'Cells.Find(What:="想尋找的數據",[Variant類型,必選。要查找的數據。可為字串或任意Microsoft Excel資料類型。]
    '           After:=ActiveCell,[Variant類型,可選。表示查找過程將從其之後開始進行的儲存格。此儲存格對應於從使用者介面查找時的作用儲存格位置。
    '                              注意After必須是查找區域中 的單個儲存格。請記住查找是從該儲存格之後開始的;直到本方法環繞到此儲存格時,才檢測其內容。
    '                              如果未指定本參數,查找將從區域的左上角儲存格之後開始。]
    '           LookIn:=xlValues,[Variant類型,可選。可為下列XlFindLookIn常量之一:xlFormulas、xlValues或xlComments。]
    '           LookAt:= xlPart,[Variant類型,可選。可為下列XlLookAt常量之一:xlPart或xlWhole。]
    '           SearchOrder:=xlByColumns,[Variant類型,可選。可為下列XlSearchOrder常量之一:xlByColumns或xlByRows。]
    '           SearchDirection:=xlNext,[Variant類型,可選。可為下列XlSearchDirection常量之一:xlNext或xlPrevious。默認常量為xlNext。]
    '           MatchCase:= False).Activate[Variant類型,可選。若指定為True,就進行區分大小寫的查找。預設值為False。]
    '           MatchByte:=True       [Variant類型,可選。僅在選擇或安裝了雙位元組語言支援時使用。若指定為True,就使雙位元組字元僅匹配雙位元組字元。
    '                                                 若指定為False,則雙位元組字元可匹配其等價的單字節字元。
 
    Sheet15.Select
    
    
    Sheet15.Cells.Find(What:=sRealFundName, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, MatchByte:=True).Activate 
    ==> VBA特定method , 描述如上
         
    sField = "A" & ActiveCell.Row
    ActiveSheet.Range(sField).Select
 
    Dim iDestination As Integer
    iDestination = ActiveCell.Row ==> 紀錄比對出來的結果列
    
    Sheet1.Select
    
 
    sField = "C" & iNowRow
    
    ActiveSheet.Range(sField).Select  ==>這段是為了回原sheet
    
    ActiveCell.Formula = "=JF_web_境內!R[$" & (iDestination) & "]C[$" & 5 & "]"

==> RC 加$是為了取絕對欄位位置 (為取得"=JF_web_境內E40" 此種格式的名字)
      
End Function
 

相簿設定
標籤設定
相簿狀態