-
建議將新錶水平排列在對應位置,即提交新位,修改設定到乙個位置,一行......
sub js()
for i = 3 to "sheet2").range("a65536").end(xlup).row
d1 = 6371004 * '
d2 = 6371004 * 'd 用於將大小與計算值進行比較,並將初始值設定為地球周長的一半儲存兩個結果。
r1 = 0
r2 = 0 'r 記錄符合條件的行號。
sj = sheets("sheet2").cells(i, 2)
sw = sheets("sheet2").cells(i, 3)
for j = 2 to "sheet1").range("a65536").end(xlup).row
ej = sheets("sheet1").cells(j, 2)
ew = sheets("sheet1").cells(j, 3)
d = *sin(ew) *cos(sj - ej) +cos(sw) *cos(ew)) / 180 * 6371004
if d < d1 then
d1 = d
r1 = j
elseif d < d2 then
d2 = d
r2 = j
end if
end if
nextsheets("sheet1").range("a" & r1 & ":c" & r1).copy (sheets("sheet2").cells(i, 4))
sheets("sheet1").range("a" & r2 & ":c" & r2).copy (sheets("sheet2").cells(i, 8))
sheets("sheet2").cells(i, 7) = d1
sheets("sheet2").cells(i, 11) = d2
nextmsgbox "祝賀! 資料終於計算出來了! "
end sub
計算的過程就是關於這個的,結果是否正確(公式是否用得當)是不能保證的,可以檢查計算距離的公式是否合適,可以......如果修改它計算結果是公尺,您可以修改這些引數以滿足您的需求......
-
說實話,你的巨集命令是用excel中的資料計算的,執行效率會很低,建議將sheet1中的資料儲存為訪問資料庫,使用VBA建立資料庫連線,然後使用SQL命令快速找到。
-
313616791,您可以實現您想要的便捷功能,只需單擊它即可。 是牛。 #
-
sub macro() '將紅色新增到 a1:a1000 區域中最小值所在的單元格背景中。
for i = 1 to 1000
if cells(i, 1) = "a1:a1000")) thencells(i, 1). = 3
end if
next i
end sub
-
只需使用突出顯示功能,您就可以開始了。
-
使用**,以A列為例,**如下:
sub tst()
msgbox range("a65536").end(xlup).row
end sub
邏輯是選擇A列的最後乙個單元格A65536(注意:Excel2003版本是A65536,Excel03版本或更高版本的最後乙個單元格是A1048576,**中的資料是自己修改的),然後Ctrl+游標快速找到最後一行有資料。
您還可以在 VBA 的 excel 函式中呼叫 count 或 counta 函式,如下所示:
-
VBA 中沒有這樣的功能。
是的count 屬性,但是否有資料並不重要。 僅計算給定區域中的單元格數。
我有乙個愚蠢的想法給你。
sub macro1()
dim s as integer
range("b1").value = "=counta(a:a)" 'B1 是臨時貸款。 您可以將其更改為不需要為空的任何乙個單元格。
s = range("b1").valuerange("b1").clear
msgbox s
end sub
樓上的Bergyan是對的。
但是我為什麼要嘗試呢?
x=:a]) 沒門。
因為你在一句話中犯了乙個錯誤。
x=:a])
-
他們談論的是函式,而不是巨集...... VBA 可以呼叫 excel 函式。 如下。
x=:a])
-
=countif(a:a,">0")
前提是 A 列是數值。
-
使用自定義篩選就可以了。
步驟:1 選擇所需的列。
2 設定過濾器。
3 在“篩選”中選擇自定義篩選器。
4 輸入多個條件。
這樣就可以顯示滿足多個條件的資料。
-
您可以使用 vlookup 函式在 ** 的右側新增一列,為滿足篩選條件的資料行分配相同的值,然後使用“條件格式”將具有此值的行顯示在新列的相應單元格中以藍色顯示。
-
篩選後給自己上色。
-
所選區域的絕對位址。
AD = 所選區域的位址。
ad2 = replace(ad, "$", ""或者(您可以在其中檢視行和列的計算方式)。
ad2 = chr( +64) &":" & chr( +63) &1
-
:行數:列數。 房東很快就採納了它。 呵呵,除錯好了。
-
private sub worksheet_selectionchange(byval target as range)
3end sub
下面是乙個示例。 將選定區域變為紅色。
-
直接使用它。
selection
就是這樣。
請參閱下面的 sub test()。
end sub
-
因為你是乙個數值,所以過濾不起作用。
假設你是 A 列。
B1 輸入。 if(mid(a1,4,2)="12",a1,""下拉填充公式。
B列是你想要的。
-
=rightb(leftb(a1,5),2) 下拉填充。
假設33312333處於 A1 位置。
leftb 選擇左邊的 5 位數字選擇 33312,rightb 選擇右邊的 2 位數字,即從右邊的 33312 選擇兩位數字,即:12
-
首先,將數字轉換為文字格式,選擇單元格-右鍵單擊-設定單元格格式-文字;
處理後,將數字轉換為數字格式,選擇單元格-右鍵單擊-設定單元格格式-值;
-
[方法 1] 例如,資料位於 A 列中。
在末尾的空白列中,輸入:
if(int(mod(a1,100000)/1000)=12,a1,"")
下拉填充。 方法2]先將此列轉換為文字,或將其複製到空白列,**更改方法:“資料”-列-下一列-下一頁-選擇“文字”格式,——確定。 直接設定單元格的方式不好用! )
然後過濾它,條件點“等於”內容寫:“?”。12*”。
-
max 函式計算陣列中的最大值。
max函式的用法:max(引數),引數可以是數字或名稱,陣列或包含數字的引用;
例如,要計算單元格 b2 到 b7 中的最大值,您可以在單元格 b8 中輸入公式 =max($b$2:$b$7),將顯示最大值。
-
假設資料位於 A 列中。
set myrange = worksheets("sheet1").range("a:a")
maxvalue = '獲得最大收益。
minvalue= '獲取最低限度。
我寫了乙個例子,請嘗試一下。 **下面:
請注意,如果您在單元格中輸入空格或其他不可見字元,則工作表也被視為不為空! >>>More
private sub commandbutton2_click()dim rag as range
for each rag in range("a2:a65536")= 60010101 >>>More