Search blog
英語過去完成進行式 (Past Perfect Progressive Tense)
在學習英語時態的旅程中,過去完成進行式常常被視為一個令人困惑的里程碑。當你想描述「過去的過去」中正在持續進行的動作時,這個時態就顯得不可或缺,但許多學習者往往在結構或用法上感到迷惑,甚至與其他時態混淆,導致表達不精確或理解偏差。
過去完成進行式(Past Perfect Continuous)是描述在過去某個時間點之前已經開始並持續進行的動作。本文將從定義、結構、用法到與其他時態的比較,全面剖析這個時態,幫助你掌握其精確用法。
過去完成進行式的核心在於表達「過去的過去」中的持續性動作。它具有獨特的表達價值,能精確描繪那些其他時態難以準確傳達的時間關係與持續過程。無論是強調動作持續的時間長度(「She had been waiting for three hours before the bus finally arrived.」),還是解釋過去某結果的原因(「The ground was wet because it had been raining.」),這個時態都能傳達出細膩的時間層次。
在語法結構上,過去完成進行式遵循「had been + 動詞ing形式」的模式。肯定句如「I had been working for six hours when she called.」;否定句則是「He had not been sleeping well before the exam.」;疑問句形式為「Had you been waiting long before he arrived?」。
值得注意的是,過去完成進行式主要有兩大用法:一是強調在過去某時點之前的「動作持續時間」,通常與for或since連用;二是解釋過去某狀況或結果發生的「背景原因」,特別適用於說明原因是一個持續進行的動作。
本文將帶你從基礎到進階,探討過去完成進行式與過去完成式、過去進行式及現在完成進行式的區別,分析常見訊號詞,提供豐富練習題,並解答進階疑問。掌握這個時態後,你將能在描述過去事件時增添精確度與層次感,使表達更加流暢自然,讓聽者或讀者更清晰地理解你所描述的時間關係。
讓PREP深入探索過去完成進行式的奧秘,從根本理解這個時態,並通過實例與練習將知識轉化為實際運用能力!

- I. 什麼是「過去完成進行式」?
- II. 過去完成進行式的構成公式
- III. 過去完成進行式用法
- IV. 過去完成進行式 vs. 過去完成式 (Past Perfect Continuous vs. Past Perfect Simple)
- V. 過去完成進行式 vs. 過去進行式 (Past Perfect Continuous vs. Past Continuous)
- VI. 過去完成進行式 vs. 現在完成進行式 (Past Perfect Continuous vs. Present Perfect Continuous)
- VII. 常用訊號詞 (Signal Words)
- VIII. 實戰演練
- IX. 進階問答集 (FAQs)
- 融會貫通:總結過去完成進行式的精髓與持續精進
I. 什麼是「過去完成進行式」?
要精通英語時態,首先需要建立對每個時態最基本且清晰的理解。讓我們從定義開始,建立對過去完成進行式的基礎認知。
1. 定義
過去完成進行式(Past Perfect Continuous)是用來表達在過去某個特定時間點之前已經開始並持續進行的動作。這個時態強調的是動作的持續性和進行狀態,而非動作的完成或結果。簡單來說,它描述的是「過去的過去」中正在進行且持續了一段時間的動作。關鍵在於:動作發生在「過去某時間點X」之前,且一直持續到該時間點或接近該時間點。
以下三個例句能幫助你更清晰地理解這個概念:
-
She had been waiting at the station for two hours. (她在車站等了兩個小時。)
-
They had been living in that house since 2010. (他們從2010年就住在那棟房子裡。)
-
The children had been playing outside all morning. (孩子們整個早上都在外面玩。)

掌握過去完成進行式有其獨特價值。它能精確表達那些其他過去時態無法準確傳達的細微差別,特別是當你需要強調動作的過程和持續時間,而非僅僅關注結果時。
2. 時間軸
以下時間軸可以幫助你視覺化理解過去完成進行式在時間中的位置:

這個時間軸清楚呈現:動作開始於過去的某個時間點,一直持續到另一個過去時間點(參考點X)。
II. 過去完成進行式的構成公式
掌握過去完成進行式的語法結構是準確應用這個時態的基礎。以下是不同句型的構成方式。

1. 肯定句 (Affirmative)
肯定句的基本結構為:主詞 + had been + 動詞ing形式 + 其他成分
例句:
-
I had been working for six hours when she called. (當她打電話來時,我已經工作了六小時。)
-
They had been traveling since early morning before they reached the destination. (在到達目的地之前,他們從一大早就開始旅行了。)
2. 否定句 (Negative)
否定句的基本結構為:主詞 + had not (hadn't) been + 動詞ing形式 + 其他成分
例句:
-
He had not been sleeping well before the exam. (考試前他一直睡得不好。)
-
They hadn't been paying attention to the warnings. (他們一直沒有注意那些警告。)
3. 疑問句 (Interrogative)
疑問句的基本結構為:Had + 主詞 + been + 動詞ing形式 + 其他成分 + ?
例句:
-
Had you been waiting long before he arrived? (在他到達之前,你等了很久嗎?)
-
回答:Yes, I had. / No, I hadn't. (是的,我有。 /不,我沒有。)
-
-
Had they been studying when the power went out? (停電時他們正在學習嗎?)
-
回答:Yes, they had. / No, they hadn't. (是的,他們有。 /不,他們沒有。)
-
特殊疑問句(Wh-questions)的結構為:疑問詞 + had + 主詞 + been + 動詞ing形式 + 其他成分 + ?
特殊疑問句例子:
-
How long had she been working there before she got promoted? (在她升職之前,她在那裡工作了多久?)
-
回答:She had been working there for five years. (她已在那裡工作了五年。)
-
-
Why had they been arguing before we arrived? (在我們到達之前,他們為什麼一直在爭論?)
-
回答:They had been arguing about the project deadline. (他們一直在爭論專案的最後期限。)
-
III. 過去完成進行式用法
理解過去完成進行式的特定使用情境和原因,是掌握這個時態的關鍵。過去完成進行式有兩個主要用法,以下將深入探討。

1. 主要用法一:強調在過去某時點之前的「動作持續時間」
過去完成進行式的第一個主要用法是強調一個動作從過去某時開始持續進行了多久,直到另一個過去的時間點。
情境說明:著重過程、延續性,常與 for, since 連用。這個用法特別強調動作的過程和持續性質,通常會搭配 for(表示一段時間)或 since(表示起始點)來明確指出動作持續了多久。例句:
-
She had been waiting for three hours before the bus finally arrived. (在公車最終到達之前,她已經等了三個小時。)。在這個例句中:
-
持續的動作:waiting(等待)
-
持續時間:for three hours(三小時)
-
過去參考點:before the bus finally arrived(在公車最終到達之前)
→ 此句重點在於強調「等待」這個過程持續了三小時,直到公車到達這個過去時間點。過去完成進行式特別適合表達這種情況,因為它強調動作的延續性。
-
They had been discussing the project since morning when the manager joined. (當經理加入時,他們從早上開始就一直在討論這個專案。)。在這個例句中:
-
持續的動作:discussing(討論)
-
起始時間:since morning(從早上開始)
-
過去參考點:when the manager joined(當經理加入時)
→ 這裡強調討論從早上開始,一直持續到經理加入的那個時間點。過去完成進行式完美捕捉了這種延續性的活動。
2. 主要用法二:解釋過去某狀況或結果發生的「背景原因」
過去完成進行式的第二個主要用法是說明過去某狀況或結果的背景原因,特別是當這個原因是一個持續進行的動作時。
情境說明:強調造成過去結果的先前持續動作。在這種用法中,過去完成進行式(had been V-ing)描述的是原因,而過去的狀況則是結果。這個結果通常以一個簡單過去式(Simple Past)或過去進行式(Past Continuous)表示。例句:
-
He was exhausted because he had been working out all afternoon. (他很疲憊,因為他整個下午都在鍛煉。)。在這個例句中:
-
結果:He was exhausted(他很疲憊)
-
原因:he had been working out all afternoon(他整個下午都在鍛煉)
-
→ 過去完成進行式在此解釋了為什麼他會感到疲憊——因為之前持續的運動。
-
The kitchen was messy; the children had been baking cookies. (廚房很亂,因為孩子們一直在烤餅乾。)。在這個例句中:
-
結果:The kitchen was messy(廚房很亂)
-
原因:the children had been baking cookies(孩子們一直在烤餅乾)
-
→ 廚房凌亂是因為孩子們之前持續的烘焙活動,這種因果關係透過過去完成進行式清晰地表達出來。
-
3. 狀態動詞 (Stative Verbs) 的使用限制
值得注意的是,進行式(包括過去完成進行式)通常不與表示狀態、認知、情感、擁有等的動詞連用。這些動詞包括:know, believe, understand, love, hate, own, seem, need, want 等。
錯誤與正確對比:
-
❌錯誤:I had been knowing him for years.
-
✅正確:I had known him for years. (我認識他已經很多年了。)
原因是狀態動詞本身不描述持續的「動作」,而是描述一種狀態,因此不適合使用進行式形式。
IV. 過去完成進行式 vs. 過去完成式 (Past Perfect Continuous vs. Past Perfect Simple)
理解過去完成進行式與其他相似時態的區別,有助於更精確地選擇適合的時態表達。以下表格比較過去完成進行式與過去完成式的主要差異:
比較面向 |
過去完成進行式 (Past Perfect Continuous) |
(Past Perfect) |
核心重點 |
強調「過程與持續時間」 |
強調「完成與結果」 |
形式 |
had been + 動詞ing形式 |
had + 動詞過去分詞 |
適用場景 |
當你想強調動作的持續過程或持續時間 |
當你想強調動作的完成狀態或結果 |
例句 |
When I arrived, she had been reading for an hour. (當我到達時,她已經讀了一小時的書。) |
When I arrived, she had read the book. (當我到達時,她已經讀完了這本書。) |
V. 過去完成進行式 vs. 過去進行式 (Past Perfect Continuous vs. Past Continuous)
接下來比較過去完成進行式與過去進行式的主要區別:
比較面向 |
過去完成進行式 (Past Perfect Continuous) |
過去進行式 (Past Continuous) |
核心重點 |
過去某時點「之前持續」的動作 |
過去某時點「當下正在進行」的動作 |
形式 |
had been + 動詞ing形式 |
was/were + 動詞ing形式 |
時間參照點 |
動作在過去參考點X之前發生並持續 |
動作在過去參考點X當時正在進行 |
適用場景 |
描述在過去某時間點之前就已開始且持續進行的動作 |
描述在過去某個確切時間點正在進行的動作 |
例句 |
The ground was wet because it had been raining. (地面濕是因為之前一直在下雨。) |
When I looked outside, it was raining. (當我往外看時,正在下雨。) |
VI. 過去完成進行式 vs. 現在完成進行式 (Past Perfect Continuous vs. Present Perfect Continuous)
最後比較過去完成進行式與現在完成進行式的主要區別:
比較面向 |
過去完成進行式 (Past Perfect Continuous) |
(Present Perfect Continuous) |
核心重點 |
動作持續到「過去某時點」 |
動作持續到「現在」 |
形式 |
had been + 動詞ing形式 |
has/have been + 動詞ing形式 |
與現在的關聯 |
動作持續到過去某點,與現在無關 |
動作從過去持續到現在(或剛停止),與現在有關 |
適用場景 |
描述過去某時間點之前的持續動作,該動作在過去已結束 |
描述從過去開始一直持續到現在(或剛剛結束)的動作 |
例句 |
She had been living in London for five years before she moved to Paris. (搬去巴黎前,她在倫敦住了五年。) |
She has been living in London for five years. (她住在倫敦已經五年了。) |
VII. 常用訊號詞 (Signal Words)
識別和正確使用過去完成進行式時,以下訊號詞可以提供判斷線索:
訊號詞 |
意義 |
範例 |
for + 時間 |
表示持續了多長時間 |
He had been working for five hours. (他已經工作了五小時。) |
since + 時間點 |
表示從何時開始 |
She had been teaching since 2010. (她從2010年就開始教書了。) |
before + 過去事件 |
表示在過去某事件之前 |
I had been writing emails before you called. (你打電話之前我一直在寫郵件。) |
when + 過去事件 |
表示過去某事件發生時 |
He had been running when he twisted his ankle. (他扭到腳踝時正在跑步。) |
by the time + 過去事件 |
在過去某時間點之前的持續動作 |
By the time we arrived, they had been waiting for an hour. (我們到達時,他們已經等了一小時。) |
until then/ that time |
直到過去某時間點的持續動作 |
Until then, I had been working on the project alone. (直到那時,我一直獨自處理這個專案。) |

VIII. 實戰演練
學習任何語法概念,都需要透過練習來鞏固理解。以下提供一系列練習題,讓你測試自己對過去完成進行式的掌握程度。請先嘗試自己完成,然後再查看答案與解析。
1. 選擇題
選出最適合填入空格的選項:
-
By the time the teacher arrived, the students ________ for 20 minutes. a) were waiting b) had waited c) had been waiting d) have been waiting
-
She was tired because she ________ all day. a) worked b) was working c) had worked d) had been working
-
When I saw Tom, his clothes were wet. It ________ earlier. a) rained b) was raining c) had rained d) had been raining
-
The children were hungry because they ________ since morning. a) didn't eat b) weren't eating c) hadn't eaten d) hadn't been eating
-
I ________ for three hours before I finally found my keys. a) looked b) was looking c) had looked d) had been looking
-
By the time we reached the top of the mountain, we ________ for more than four hours. a) climbed b) were climbing c) had climbed d) had been climbing
-
His hands were dirty because he ________ in the garden. a) worked b) was working c) had worked d) had been working
-
When the ambulance arrived, the doctor ________ the patient for twenty minutes. a) treated b) was treating c) had treated d) had been treating
-
Maria ________ Chinese for two years before she moved to Taiwan. a) studied b) was studying c) had studied d) had been studying
-
The floor was wet because someone ________ the plants. a) watered b) was watering c) had watered d) had been watering
2. 填空題練習
使用過去完成進行式填空:
-
Before the accident happened, the driver ________ (drive) for 10 hours without a break.
-
I was very thirsty because I ________ (run) for an hour.
-
When the power came back on, we ________ (sit) in the dark for three hours.
-
His eyes were red because he ________ (cry).
-
By the time we reached the cinema, the film ________ (play) for 20 minutes.
-
She ________ (learn) English for five years before she took the IELTS test.
-
They were exhausted because they ________ (hike) all day in the mountains.
-
When I arrived at the office, my colleagues ________ (discuss) the project for over an hour.
-
The baby was cranky because she ________ (sleep) poorly for several nights.
-
By the time he retired, he ________ (teach) at the university for thirty years.
3. 答案
選擇題解析 |
填空題解析 |
|
|
IX. 進階問答集 (FAQs)
學習過程中難免會產生一些疑問。以下是針對過去完成進行式的常見進階問題及其解答,這些問題往往超出了基本用法的範疇,但對於全面掌握此時態非常有幫助。
1. 過去完成進行式中的「過去某個時間點」是否必須在句子中明確指出?
不,「過去某個時間點」不一定要在句子中明確指出,但需要從上下文中能夠理解。在正式寫作或考試中,建議清楚提供這個時間參考點,以確保表達準確。例如:
-
沒有上下文: I had been studying English. (缺乏明確的過去參考時間點)
-
結合上下文: I had been studying English before I moved to Taiwan. (有明確的過去參考時間點:搬到台灣之前)
有時參考點可能在前後句中提及,整體上下文會使時態關係清晰。
2. 相較於其他完成進行式,過去完成進行式的使用頻率如何?
過去完成進行式的使用頻率相對較低,尤其是在日常口語中。它主要出現在需要表達複雜時間關係的敘述中,如小說、詳細報告或正式寫作。現在完成進行式的使用頻率更高,因為人們更常談論從過去持續到現在的事件。
然而,這並不意味著過去完成進行式不重要。在需要精確表達過去時間線上的持續動作時,掌握這個時態是不可或缺的,尤其是在學術寫作、文學創作和正式英語考試中。
3. 是否可以用過去完成進行式來描述一個在過去就已完成的、持續性的習慣?
可以,過去完成進行式可以用來描述在過去某個時間點之前的持續性習慣。例如:
-
He had been smoking for 15 years before he finally quit. (在他最終戒菸之前,他已經抽菸15年了。)
-
She had been teaching at that school for a decade before she got promoted. (在她升職之前,她已經在那所學校教書十年了。)
這種用法特別強調習慣的持續性質和時間長度,而非單純的事實陳述。
4. 除了過去完成進行式,還有哪些表達方式可以描述「過去某時點之前的持續動作」?
除了過去完成進行式外,還有幾種方式可以表達類似概念,但細微差別值得注意:
表達方式 |
特點 |
強調重點 |
例句 |
過去完成式 + 時間副詞 |
使用had + 過去分詞 + 時間副詞 |
強調完成和結果,而非過程 |
I had lived there for ten years before moving. (我搬家前已經在那裡住了十年。) |
used to + 動詞原形 |
使用fixed expression表達過去習慣 |
強調過去的習慣,但不特別強調持續的時間長度 |
I used to go to that cafe every day before it closed down. (在那家咖啡店關閉之前,我每天都去。) |
would + 動詞原形 |
用would表達過去重複動作 |
強調動作的重複性,而非持續性 |
Every morning, he would jog in the park before going to work. (每天早上,他上班前都會在公園慢跑。) |
過去完成進行式 |
had been + 動詞ing形式 |
強調動作的持續過程和時間長度 |
I had been studying English for five years before I took the IELTS test. (在我參加雅思考試之前,我已經學習英語五年了。) |
選擇哪種表達方式,取決於你想強調的是持續的過程、完成的結果,還是習慣的性質。
融會貫通:總結過去完成進行式的精髓與持續精進
經過全面的學習與練習,現在是時候總結過去完成進行式的核心概念,並思考如何繼續提升掌握程度。核心要點快速回顧:
-
過去完成進行式描述的是在過去某時間點之前已經開始並持續的動作
-
結構:had been + 動詞ing形式
-
兩大主要用法:強調動作持續時間和解釋過去結果的背景原因
-
與過去完成式的核心區別:過去完成進行式強調過程,過去完成式強調結果
-
常與for、since、before、when等時間副詞連用
-
狀態動詞通常不使用進行式形式
要真正掌握過去完成進行式,建議你閱讀英語小說,特別留意敘述過去事件的段落;嘗試用過去完成進行式造句描述自己的經歷;在寫作練習中有意識地運用這個時態。定期回顧本文的要點和例句,鞏固理解。
熟練掌握過去完成進行式能夠大幅提升你描述過去事件的精確度和細膩度。它讓你能夠在描述複雜時間線上的事件時,準確表達出動作的持續性、先後關係和因果關聯,為你的英語表達增添層次和深度。
在PREP的學習旅程中,我們相信每一個語法細節都是構建完整語言能力的重要基石。過去完成進行式或許不是最常用的時態,但掌握它代表你已經邁向更高層次的英語精通之路。
使用 PREP——結合 AI 的智慧學習與考試平台,讓您更輕鬆地開始線上雅思學習。憑藉獨家 AI 技術,您可以在家自主學習,並有效完成雅思學習規劃。此外,Teacher Bee AI 能協助解答疑問,並在整個學習過程中一對一陪伴您。
點擊此處了解更多關於雅思課程的詳細資訊!
現在就下載 PREP App,開啟在家自學雅思的旅程,並享受高品質的線上備考課程。

你好!我叫秋贤,目前在網站 prepedu.com 的部落格擔任產品內容經理。
憑藉超過5年自學英語、漢語等外語以及準備一些雅思和托業考試的經驗,我積累了豐富的經驗,為數千名在學習外語方面遇到困難的人提供支持。希望以上分享能對大家在家有效自學的過程有幫助!
Comment
Related posts
Search blog
Most read
Register for a learning roadmap consultation
Please leave your information, and Prep will contact you for consultation right away!
