Can't upload to board

When I try to upload any sketch to my Arduino Uno from any computer, it says:

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "D:\Program Files\Arduino\hardware\tools\avr/etc/avrdude.conf"

Using Port : COM3
Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x07
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x07
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x07
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x07
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x07
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x07
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x07
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x07
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x07
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x07

avrdude done. Thank you.

Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

This may not be related, but it doesn't seem to do anything when I press the reset button.

Not too much detail there but avoid USB 3.0 ports as there are known issues.

Change USB cables or use ones known to work.

Remove hardware connected to board before any upload in case it interferes.

I am sure that it is not the cable, I am not using usb 3.0, and the arduino has nothing connected.

Is it by any chance a clone board ?
If it is you need these drivers from here.
Ignore that it is a Chinese site as these are the correct drivers for most clones !

Obviously Arduino does not supply drivers for copycat clones.
Although the online IDE does support them out of the box.

I forgot to add that it used to work and recently stopped working. So I know that isn't drivers or anything like that.

I have seen windows replace drivers with bad ones so never discount that option.

If it is as random as you say then it might be a process of elimination but intermittent issues are a royal pain to track and fix.

Start by double checking the cable is good as they can go bad and intermittent at any time.
Check the soldering for the USB port on the board and also ensure the one you are using on the computer is also not too loose a fit.

If thats all good then double check to see if there is anything listed as needing a driver or showing an issue in DEVICE MANAGER. If there is then that must be fixed before going any further.

Disable all security on your computer for a a test.
Also stop any other software that may interrupt the COM ports such as phone sync software / terminal software etc. or similar until testing is complete.