我认为选D,因为for three years 持续了三年,如果选B的话说明“被选为先进”这个动作持续了三年,这不现实,完成时可以与时间段连用。故选D。只是个人看法,希望对您有用。
B首先此处应用被动排除A,D,其次固定句型it is honor for sb to do/to be sth希望对你有用!
D. to have been elected
B