If the witches told Macbeth that no one born from a woman will harm him, why did he try to kill Macduff (considering that he didn't know that Macduff wasn't woman born until the last play)?
You ask a good question. If Macbeth now believes himself to be invulnerable, then why would he feel the need to kill anyone? And yet, when the second apparition tells him to be bold because no man born of woman will be able to harm him, he says,
Then live, Macduff; what need I fear of thee?
But yet I'll make assurance double sure
And take a bond of fate. Thou shalt not live,
That I may tell pale-hearted fear it lies,
And sleep in spite of thunder (4.1.93-97)
At first, then, he says that he doesn't need to kill Macduff because there is no reason to fear him. But then, Macbeth thinks again and determines to be extra sure to remove any obstacles in order to guarantee his fate.
He now vows that he will, in fact, kill Macduff, and then he will have no more reason to fear, and he'll also be able to sleep easy at night (despite whatever else is going on around him). After all, the first apparition did say, "Beware the Thane of Fife" (4.1.82). Thus, there is the implication that Macduff, the Thane of Fife, could pose some kind of threat to him. By killing him, Macbeth covers his bases and removes any cause for concern.