close
標題:

excel marco

發問:

我想問下如果我想在一個column裡search下邊格有野 search完將有野個D cell 加埋一齊(cell的內容是text來的) 請問marco/vba要點寫呢? 其實唔用marco/vba寫得唔得呢? 更新: 因為例如我想整 A B C abc company abc@hotmail.com; bca company 123 123@yahoo.com 咁我想check如果B column邊個有野,例如check 到 B1 和 B3有野就將B1和B3個address加埋 請問點整呢? 更新 2: =Egroup(B1:B50,";",1) 在那裡打呢,如果我在excel其中一個cell打,唔得喎 佢出現#Name? 更新 3: 得咗啦,謝謝呀! 其實可唔可以解釋下段code呢? 謝謝 更新 4: a = Space(Int(ss * Sgn(ss))) 這句其實沒有作用, 祇是怕用者輸入錯誤數值, 如 -1.5, 此句會將 -1.5變成 1 If IsEmpty(y) = False a, ss, y 為什麼不用define 呢( eg. int, double, float 個D 呢)?

最佳解答:

方法 - 自製Formula(用Marco/VBA), 公式名稱: 按 Alt + F11, 出現一個Visual Basic視窗, 按插入→選模組, 然後將下列的程式貼上, 關閉Visual Basic 視窗。 Public Function Egroup(yy As Range, zz As String, ss As Single) As String a = Space(Int(ss * Sgn(ss))) For Each y In yy If IsEmpty(y) = False Then yyy = yyy & Trim(y) & Trim(zz) & a End If Next Egroup = Trim(yyy) End Function 這樣, 便會誕生一條新公式叫 Egroup 在任何位置輸入公式: =Egroup(B1:B50,“;”,1) 便會將B1:B50內的e-mail address 串成一起, 並有 1分號及1空格相隔 公式架構: = Egroup( 儲存格範圍 , 分隔字元 , 空格數量) 儲存格範圍: 可橫排(A1:E1); 可直排(A1:A5); 可矩形陣列(A1:E5), data 是文字,數字,符號均可, 如有空格, 該格內容會被忽略。 分隔字元: 儲存格位址,文字,數字,符號均可, 左右兩邊如有空格, 會被省去 空格數量: 如有負號或小數值, 會被省去 以上3個引數, 必需輸入。 同類問題, 早兩天已答過: http://hk.knowledge.yahoo.com/question/?qid=7007020802109 2007-02-14 09:57:49 補充: 在任何位置打上公式均可你是否已將程式, 即由 Public Function Egroup .......至 End Function止, 這段文字, 複製然後貼在Visual Basic 的視窗上.因出 #NAME , 是找不到此公式如再有問題, 請留E-MAIL, 我給你檔案 2007-02-15 22:01:07 補充: a = Space(Int(ss * Sgn(ss)))這句其實沒有作用, 祇是怕用者輸入錯誤數值, 如 -1.5, 此句會將 -1.5變成 1以后是用 For Each ....Next (Loop 迥圈方法的一種), 將字串連成If IsEmpty(y) = False 即該格不是空白, 才做以下動作IF 和 Loop 幾乎是 vba 最重要及常用的, 沒有此兩種, 我估計可能80%以上的程式都無法完成其實此巨集的語法都是中階以下, 算是相對較容易當然, 寫巨集除了VBA語言外, 尚需一些數感/邏輯感/靈感, 而這些感覺是會在經驗中得到的 2007-02-18 01:09:10 補充: Dim 即宣告資料型態, 即等如考車牌, 和考倒車牌後揸車, 考車牌時, 什麼細微的東西都要做足, 如有牌揸車, 祇要是安全及無壞影響, 一些小事是可以不需太執著的。如是交功課考試, 當然要加上Dim a As StringDim y As String及在 Next 後面加上 y這些宣告會對記憶體分配及運算速度有影響(即如將公式下拉幾千個), 但今次的公式, 基本上不會下拉, 我便貪方便簡略了。其實第一句 ss As Single, 我是用錯, 應該是 ss As Interger較佳, 因 Interger 比 Single 佔用較少的記憶體。

免費註冊體驗

 

此文章來自奇摩知識+如有不便請留言告知

其他解答:

You can try a combination of IF statement and IS function (e.g. ISTEXT) Let's say column A has your text, you can write something like the following in the next column (e.g colume B): If (istext(a1), a1, " ") =test if a1 is a text, it true, returns the value in a1 otherwise a space. Or similar If (istext(a1), 1, 0) where 1 indicates it is a text and 0 is not. I dont understand why you want to add text? Text cannot be added like numeric. If you want to concatenate them, try & such as a1&a3 (e.g a1=apple, a3=orange) it will return you with appleorange, or a1&" and "&a3 = apple and orange. Help it works for you.
arrow
arrow
    創作者介紹
    創作者 oob73zj92b 的頭像
    oob73zj92b

    oob73zj92b的部落格

    oob73zj92b 發表在 痞客邦 留言(0) 人氣()