2016-08-14 134 views
0

我知道Excel公式

Cells(16, 2) = "=TEXT(42831,""dd-mmm-yy"")" 'DISPLAYS 06-Apr-17 IN CELL B16 

我就需要工作的日期序列號,即42831,宏用一個變量來代替在使用變量: -

Dim lngDateSerialNo As Long 
lngDateSerialNo = 42831 

因此,現在我已經將42831分配給變量lngDateSerialNo
這裏並沒有真正的相關性,只是說這個變量在運行時會被更新來給我一個相隔一週的期望的日期序列。

我也知道,

Cells(18, 2) = "=TEXT(" & lngDateSerialNo & ",""dd-mmm-yy"")" 'displays 06-Apr-17 IN cell B18 

,並公平地說,我需要與上面的代碼行的幫助。

目的

要儘量的瞭解究竟是什麼和號做 - 從給我我想要的結果分開!

在VBA中相對缺乏經驗,我對和號的理解是它是一個串聯運算符,並且在生活中似乎沒有任何其他功能。

問題1
是否有人在那裏請給我一個理解爲什麼這行代碼工作如此之好?

問題2
純屬學術性,但如果確實和符號是連接運算符,可以使用CONCATENATE公式代替&符號嗎?

回答

4

我與符號的理解是,它是一個連接運算符並沒有出現在生活中的其他功能

基本上是的,除非你想也考慮&被用作爲Long類型說明符:

Dim a& ' declares a As Long 

可能有人在那裏請給我一個理解,爲什麼該行代碼工作這麼好?

因爲那寫這種代碼的方式。
可以潛在地使唯一的變化是更換&+如果兩個參數都是字符串,其工作原理是&,但你不應該這樣做,因爲&表達最明確的方式意圖。

純學術的,但如果確實和符號是連接運算符,可以將CONCATENATE公式代替所使用的符號

沒有的,因爲該特定&是VBA語法的一部分。您正在VBA中構建一個字符串,此時字符串中包含Excel公式並不重要。 VBA沒有CONCATENATE函數,因此在VBA中構建字符串時,不能使用它來代替&

然而&還用於在Excel公式語法字符串連接,如果你要建立一個&雙引號中的公式,而不是外面,你可以用CONCATENATE取代它,因爲現在它的Excel中語法,其中CONCATENATE存在。

+0

非常感謝,GSerg。 – ComfortablyNumb