返回列表 上一主題 發帖

[發問] 想請教有關插入欄的問題

[發問] 想請教有關插入欄的問題

各位先進大家好!小弟有一個問題想請教,小弟曾經看過別人寫的excel檔,也是有關計算成績的軟體,結構如下
標題標題標題標題標題標題標題標題標題標題標題標題標題標題標題標題標題標題標題標題標題標題標題標題
ABCDEFG H
ABCDEFG H
ABCDEFG H
ABCDEFG H
ABCDEFG H
ABCDEFG H
ABCDEFG H
ABCDEFG H
其中A到G都是分數而H是平均值,而標題上有個巨集按鈕,可以在G後面再新增一整欄,可以一直新增,小弟的問題來了。原本我也是照著模仿,但是一旦新增,H欄的原來編號就會改變(例如A8變成A9)那麼我的整個語法就會跑掉,請問有何設定可以固定,或是有其他的變通方法?謝謝。

回復 2# Hsieh
不好意思!我沒說清楚,就是原本我的平均是在G這一欄,按下新增一欄後,我的平均欄位就會變成H,可是我其他的工作表的語法是預設G這一欄,到時候語法會顯示錯誤,找不到平均成績! Book1.rar (12.63 KB)

TOP

回復 4# Hsieh
版大!不好意思再打擾一下,關於檔案裡面的語法:
Sub Macro1()
    Range("D2").Select
    Selection.EntireColumn.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    MsgBox "平均值在" & [平均].Address
End Sub
重點是不是在這裡:[平均].Address,這裡就可以鎖定名稱是平均的欄位,但是我做了一個實驗,我在其他欄位也輸入平均,可是結果也是原來正確的那一欄,再次請教這語法的用法?謝謝。

TOP

回復 6# Hsieh
版大!不好意思,我沒說清楚,我的意思是如果有很多欄位的名稱都叫做「平均」呢,那電腦怎知要找哪一個?

TOP

回復 8# stillfish00
感謝大大解惑!小弟受用了。

TOP

回復 6# Hsieh
版大!不好意思,又來打擾,小弟未能舉一反三,有些慚愧,問題如下:
自從上次受教之後,小弟改寫語法如下,
Sub Macro1()
    Range("D2").Select
    Selection.EntireColumn.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    Dim a, b As String
     b = [平均].Address
     a = Mid(b, 2, 1)
    MsgBox a
End Sub
後面這一段是要知道(平均)欄位的位置開頭英語稱號,例如(d1)的d,因為在其他工作表有迴圈要寫,例如
With Sheets("期中評量")
    j = Sheets("基本設定").Range("j3").Value + 5
    For i = 6 To j
    Sheets("期中成績").Range("c" & i).Value = (.Range("c" & i - 3) * ch1 + .Range("h" & i - 3) * ch2 + .Range("i" & i - 3) * ch3 + .Range("j" & i - 3) * ch4) / 100
    Sheets("期中成績").Range("d" & i).Value = (.Range("d" & i - 3) * en1 + .Range("k" & i - 3) * en2 + .Range("l" & i - 3) * en3 + .Range("m" & i - 3) * en4) / 100
    Sheets("期中成績").Range("e" & i).Value = (.Range("e" & i - 3) * ma1 + .Range("n" & i - 3) * ma2 + .Range("o" & i - 3) * ma3 + .Range("p" & i - 3) * ma4) / 100
    Sheets("期中成績").Range("f" & i).Value = (.Range("f" & i - 3) * na1 + .Range("q" & i - 3) * na2 + .Range("r" & i - 3) * na3 + .Range("s" & i - 3) * na4) / 100
    Sheets("期中成績").Range("g" & i).Value = (.Range("g" & i - 3) * so1 + .Range("t" & i - 3) * so2 + .Range("u" & i - 3) * so3 + .Range("v" & i - 3) * so4) / 100
    Next i
    End With
但是,問題來了,如果欄位一直新增,到了Z之後,就會從AA開始編號,那迴圈就會出問題,懇請解惑,再次感謝!

TOP

回復 10# skyutm
我之前有想過這樣 b = [平均].Address改成 b = cell(平均).Address但行不通

TOP

        靜思自在 : 人的心地是一畦田,土地沒有播下好種子,也長不出好的果實。 -
返回列表 上一主題